* [PATCH v6 1/6] drm/xe/xe_late_bind_fw: Fix firmware leak on missing manifest entry
2026-10-30 14:45 [PATCH v6 0/6] Add ocode late binding support for CRI Badal Nilawar
@ 2026-10-30 14:45 ` Badal Nilawar
2026-10-30 14:45 ` [PATCH v6 2/6] drm/xe/xe_late_bind_fw: Add string mappings of status codes Badal Nilawar
` (6 subsequent siblings)
7 siblings, 0 replies; 13+ messages in thread
From: Badal Nilawar @ 2026-10-30 14:45 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")
Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
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] 13+ messages in thread* [PATCH v6 2/6] drm/xe/xe_late_bind_fw: Add string mappings of status codes
2026-10-30 14:45 [PATCH v6 0/6] Add ocode late binding support for CRI Badal Nilawar
2026-10-30 14:45 ` [PATCH v6 1/6] drm/xe/xe_late_bind_fw: Fix firmware leak on missing manifest entry Badal Nilawar
@ 2026-10-30 14:45 ` Badal Nilawar
2026-10-30 14:55 ` sashiko-bot
2026-10-30 22:44 ` Ceraolo Spurio, Daniele
2026-10-30 14:45 ` [PATCH v6 3/6] drm/xe/xe_late_bind_fw: Convert late bind flag to mask Badal Nilawar
` (5 subsequent siblings)
7 siblings, 2 replies; 13+ messages in thread
From: Badal Nilawar @ 2026-10-30 14:45 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
The mei_lb driver introduced additional late binding status codes.
Add the corresponding string mappings in Xe for reporting these
statuses.
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
---
drivers/gpu/drm/xe/xe_late_bind_fw.c | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.c b/drivers/gpu/drm/xe/xe_late_bind_fw.c
index 1bddfaf0fb9f..b7957e255ccd 100644
--- a/drivers/gpu/drm/xe/xe_late_bind_fw.c
+++ b/drivers/gpu/drm/xe/xe_late_bind_fw.c
@@ -179,6 +179,32 @@ 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";
default:
return "Unknown error";
}
--
2.56.0
^ permalink raw reply related [flat|nested] 13+ messages in thread* Re: [PATCH v6 2/6] drm/xe/xe_late_bind_fw: Add string mappings of status codes
2026-10-30 14:45 ` [PATCH v6 2/6] drm/xe/xe_late_bind_fw: Add string mappings of status codes Badal Nilawar
@ 2026-10-30 14:55 ` sashiko-bot
2026-10-30 22:44 ` Ceraolo Spurio, Daniele
1 sibling, 0 replies; 13+ messages in thread
From: sashiko-bot @ 2026-10-30 14:55 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: missing BUFFER_TOO_SMALL mapping in xe_late_bind_parse_status()
--
commit d7b67485aab2684a93a389da87365dcc4bead83b
Author: Badal Nilawar <badal.nilawar@intel.com>
drm/xe/xe_late_bind_fw: Add string mappings of status codes
This commit adds string mappings in xe_late_bind_parse_status() for the new
late binding status codes introduced in the mei_lb driver.
> diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.c b/drivers/gpu/drm/xe/xe_late_bind_fw.c
> index 1bddfaf0fb9f0..b7957e255ccde 100644
> --- a/drivers/gpu/drm/xe/xe_late_bind_fw.c
> +++ b/drivers/gpu/drm/xe/xe_late_bind_fw.c
> @@ -179,6 +179,32 @@ 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";
[Severity: Medium]
Should INTEL_LB_STATUS_BUFFER_TOO_SMALL also be handled here in
xe_late_bind_parse_status()?
Commit 773a43b8627f ("mei: lb: add late binding version 2") added status
codes 8 through 21 to enum intel_lb_status in
include/drm/intel/intel_lb_mei_interface.h:
INTEL_LB_STATUS_TIMEOUT = 7,
INTEL_LB_STATUS_BUFFER_TOO_SMALL = 8,
INTEL_LB_STATUS_INTERNAL_ERROR = 9,
Without a case for INTEL_LB_STATUS_BUFFER_TOO_SMALL, if
late_bind->component.ops->push_payload() returns status 8 to
xe_late_bind_work(), xe_late_bind_parse_status() will fall through to the
default case and report "Unknown error".
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261030144547.2532309-8-badal.nilawar@intel.com?part=2
^ permalink raw reply [flat|nested] 13+ messages in thread* Re: [PATCH v6 2/6] drm/xe/xe_late_bind_fw: Add string mappings of status codes
2026-10-30 14:45 ` [PATCH v6 2/6] drm/xe/xe_late_bind_fw: Add string mappings of status codes Badal Nilawar
2026-10-30 14:55 ` sashiko-bot
@ 2026-10-30 22:44 ` Ceraolo Spurio, Daniele
1 sibling, 0 replies; 13+ messages in thread
From: Ceraolo Spurio, Daniele @ 2026-10-30 22:44 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/30/2026 7:45 AM, Badal Nilawar wrote:
> The mei_lb driver introduced additional late binding status codes.
> Add the corresponding string mappings in Xe for reporting these
> statuses.
>
> 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 | 26 ++++++++++++++++++++++++++
> 1 file changed, 26 insertions(+)
>
> diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.c b/drivers/gpu/drm/xe/xe_late_bind_fw.c
> index 1bddfaf0fb9f..b7957e255ccd 100644
> --- a/drivers/gpu/drm/xe/xe_late_bind_fw.c
> +++ b/drivers/gpu/drm/xe/xe_late_bind_fw.c
> @@ -179,6 +179,32 @@ 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";
> default:
> return "Unknown error";
> }
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v6 3/6] drm/xe/xe_late_bind_fw: Convert late bind flag to mask
2026-10-30 14:45 [PATCH v6 0/6] Add ocode late binding support for CRI Badal Nilawar
2026-10-30 14:45 ` [PATCH v6 1/6] drm/xe/xe_late_bind_fw: Fix firmware leak on missing manifest entry Badal Nilawar
2026-10-30 14:45 ` [PATCH v6 2/6] drm/xe/xe_late_bind_fw: Add string mappings of status codes Badal Nilawar
@ 2026-10-30 14:45 ` Badal Nilawar
2026-10-30 14:45 ` [PATCH v6 4/6] drm/xe/xe_late_bind_fw: Add support to load Ocode firmware Badal Nilawar
` (4 subsequent siblings)
7 siblings, 0 replies; 13+ messages in thread
From: Badal Nilawar @ 2026-10-30 14:45 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.
Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Signed-off-by: Badal Nilawar <badal.nilawar@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 b98418795d5e..d99881c6e1d5 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -151,6 +151,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
@@ -184,8 +186,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 b7957e255ccd..c5f3a3b8d404 100644
--- a/drivers/gpu/drm/xe/xe_late_bind_fw.c
+++ b/drivers/gpu/drm/xe/xe_late_bind_fw.c
@@ -391,6 +391,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;
@@ -399,6 +400,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;
@@ -462,7 +465,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 d13599d79ae9..3e6f8f936235 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] 13+ messages in thread* [PATCH v6 4/6] drm/xe/xe_late_bind_fw: Add support to load Ocode firmware
2026-10-30 14:45 [PATCH v6 0/6] Add ocode late binding support for CRI Badal Nilawar
` (2 preceding siblings ...)
2026-10-30 14:45 ` [PATCH v6 3/6] drm/xe/xe_late_bind_fw: Convert late bind flag to mask Badal Nilawar
@ 2026-10-30 14:45 ` Badal Nilawar
2026-10-30 22:46 ` Ceraolo Spurio, Daniele
2026-10-30 14:45 ` [PATCH v6 5/6] drm/xe/xe_late_bind_fw: Enable late binding support for CRI Badal Nilawar
` (3 subsequent siblings)
7 siblings, 1 reply; 13+ messages in thread
From: Badal Nilawar @ 2026-10-30 14:45 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.
v2:
- Make sdk_api_version part of ip_specific_data union (Daniele)
Assisted-by: LLM
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
---
drivers/gpu/drm/xe/abi/uc_fw_abi.h | 11 ++++-
drivers/gpu/drm/xe/xe_late_bind_fw.c | 48 +++++++++++++++----
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, 97 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..59699ba4def5 100644
--- a/drivers/gpu/drm/xe/abi/uc_fw_abi.h
+++ b/drivers/gpu/drm/xe/abi/uc_fw_abi.h
@@ -316,6 +316,11 @@ struct gsc_cpd_entry {
u8 reserved[4];
} __packed;
+struct ocode_manifest_data {
+ u16 sdk_api_version;
+ u8 reserved[22];
+} __packed;
+
struct gsc_manifest_header {
u32 header_type; /* 0x4 for manifest type */
u32 header_length; /* in dwords */
@@ -331,7 +336,11 @@ struct gsc_manifest_header {
struct gsc_version meu_kit_version;
u32 meu_manifest_version;
u8 general_data[4];
- u8 reserved3[56];
+ union {
+ u8 ip_specific_data[24];
+ struct ocode_manifest_data ocode_data;
+ };
+ u8 reserved3[32];
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 c5f3a3b8d404..b62a4c15c738 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->ocode_data.sdk_api_version;
return 0;
}
@@ -324,6 +333,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)
@@ -346,9 +356,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);
@@ -358,17 +382,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) {
@@ -381,6 +405,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] 13+ messages in thread* Re: [PATCH v6 4/6] drm/xe/xe_late_bind_fw: Add support to load Ocode firmware
2026-10-30 14:45 ` [PATCH v6 4/6] drm/xe/xe_late_bind_fw: Add support to load Ocode firmware Badal Nilawar
@ 2026-10-30 22:46 ` Ceraolo Spurio, Daniele
0 siblings, 0 replies; 13+ messages in thread
From: Ceraolo Spurio, Daniele @ 2026-10-30 22:46 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/30/2026 7:45 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.
>
> v2:
> - Make sdk_api_version part of ip_specific_data union (Daniele)
>
> Assisted-by: LLM
> Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Please get an ack from a maintainer if you want to merge this ahead of
the FW being published.
Daniele
> ---
> drivers/gpu/drm/xe/abi/uc_fw_abi.h | 11 ++++-
> drivers/gpu/drm/xe/xe_late_bind_fw.c | 48 +++++++++++++++----
> 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, 97 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..59699ba4def5 100644
> --- a/drivers/gpu/drm/xe/abi/uc_fw_abi.h
> +++ b/drivers/gpu/drm/xe/abi/uc_fw_abi.h
> @@ -316,6 +316,11 @@ struct gsc_cpd_entry {
> u8 reserved[4];
> } __packed;
>
> +struct ocode_manifest_data {
> + u16 sdk_api_version;
> + u8 reserved[22];
> +} __packed;
> +
> struct gsc_manifest_header {
> u32 header_type; /* 0x4 for manifest type */
> u32 header_length; /* in dwords */
> @@ -331,7 +336,11 @@ struct gsc_manifest_header {
> struct gsc_version meu_kit_version;
> u32 meu_manifest_version;
> u8 general_data[4];
> - u8 reserved3[56];
> + union {
> + u8 ip_specific_data[24];
> + struct ocode_manifest_data ocode_data;
> + };
> + u8 reserved3[32];
> 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 c5f3a3b8d404..b62a4c15c738 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->ocode_data.sdk_api_version;
>
> return 0;
> }
> @@ -324,6 +333,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)
> @@ -346,9 +356,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);
> @@ -358,17 +382,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) {
> @@ -381,6 +405,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] 13+ messages in thread
* [PATCH v6 5/6] drm/xe/xe_late_bind_fw: Enable late binding support for CRI
2026-10-30 14:45 [PATCH v6 0/6] Add ocode late binding support for CRI Badal Nilawar
` (3 preceding siblings ...)
2026-10-30 14:45 ` [PATCH v6 4/6] drm/xe/xe_late_bind_fw: Add support to load Ocode firmware Badal Nilawar
@ 2026-10-30 14:45 ` Badal Nilawar
2026-10-30 14:59 ` sashiko-bot
2026-10-30 14:45 ` [PATCH v6 6/6] drm/xe/xe_late_bind_fw: Refactor pm flow Badal Nilawar
` (2 subsequent siblings)
7 siblings, 1 reply; 13+ messages in thread
From: Badal Nilawar @ 2026-10-30 14:45 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>
Reviewed-by: 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 3e6f8f936235..ba23ec60477b 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] 13+ messages in thread* Re: [PATCH v6 5/6] drm/xe/xe_late_bind_fw: Enable late binding support for CRI
2026-10-30 14:45 ` [PATCH v6 5/6] drm/xe/xe_late_bind_fw: Enable late binding support for CRI Badal Nilawar
@ 2026-10-30 14:59 ` sashiko-bot
0 siblings, 0 replies; 13+ messages in thread
From: sashiko-bot @ 2026-10-30 14:59 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 757939afc7a64783d9f3384321cd0d56046b5326
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 396204f2e3e45..3fa842c22a508 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]
As reported by Sashiko on v5 [1], does xe_late_bind_init() check the right
Kconfig symbol for Crescent Island when xe_device_probe() ->
xe_late_bind_init() runs with late_bind_mask enabled in cri_desc?
In drivers/gpu/drm/xe/xe_late_bind_fw.c, xe_late_bind_init() currently gates
initialization on CONFIG_INTEL_MEI_GSC:
drivers/gpu/drm/xe/xe_late_bind_fw.c:xe_late_bind_init() {
if (!xe->info.late_bind_mask)
return 0;
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;
}
}
Unlike Battlemage (bmg_desc), which sets has_heci_cscfi = 1 and registers an
auxiliary device bound by the mei-gsc driver under CONFIG_INTEL_MEI_GSC,
cri_desc has both has_heci_gscfi and has_heci_cscfi set to false. Instead,
Crescent Island exposes a standalone PCI MEI CSC controller bound by
mei_csc_driver under 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) },
{ }
};
If CONFIG_INTEL_MEI_LB and CONFIG_INTEL_MEI_CSC are enabled while
CONFIG_INTEL_MEI_GSC is disabled, 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 late
bind component and queue xe_late_bind_work(), where each payload worker waits
LB_INIT_TIMEOUT_MS (20 seconds per payload, up to 40 seconds total on the
ordered workqueue) for a component bind that never happens, stalling
xe_late_bind_wait_for_worker_completion() during xe_late_bind_pm_suspend() or
xe_late_bind_remove().
Should xe_late_bind_init() check CONFIG_INTEL_MEI_CSC for Crescent Island
instead of CONFIG_INTEL_MEI_GSC?
[1] https://lore.kernel.org/r/20261028181951.1093283-11-badal.nilawar@intel.com
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261030144547.2532309-8-badal.nilawar@intel.com?part=5
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v6 6/6] drm/xe/xe_late_bind_fw: Refactor pm flow
2026-10-30 14:45 [PATCH v6 0/6] Add ocode late binding support for CRI Badal Nilawar
` (4 preceding siblings ...)
2026-10-30 14:45 ` [PATCH v6 5/6] drm/xe/xe_late_bind_fw: Enable late binding support for CRI Badal Nilawar
@ 2026-10-30 14:45 ` Badal Nilawar
2026-10-30 15:16 ` ✓ CI.KUnit: success for Add ocode late binding support for CRI (rev6) Patchwork
2026-10-30 15:52 ` ✓ Xe.CI.BAT: " Patchwork
7 siblings, 0 replies; 13+ messages in thread
From: Badal Nilawar @ 2026-10-30 14:45 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 b62a4c15c738..c5a9def25aee 100644
--- a/drivers/gpu/drm/xe/xe_late_bind_fw.c
+++ b/drivers/gpu/drm/xe/xe_late_bind_fw.c
@@ -228,7 +228,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;
@@ -304,18 +304,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) {
@@ -323,7 +317,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)
@@ -456,7 +449,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;
}
@@ -471,7 +464,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;
@@ -482,6 +475,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.
@@ -518,5 +535,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 89d64aa6577d..36042252c1db 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] 13+ messages in thread* ✓ CI.KUnit: success for Add ocode late binding support for CRI (rev6)
2026-10-30 14:45 [PATCH v6 0/6] Add ocode late binding support for CRI Badal Nilawar
` (5 preceding siblings ...)
2026-10-30 14:45 ` [PATCH v6 6/6] drm/xe/xe_late_bind_fw: Refactor pm flow Badal Nilawar
@ 2026-10-30 15:16 ` Patchwork
2026-10-30 15:52 ` ✓ Xe.CI.BAT: " Patchwork
7 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2026-10-30 15:16 UTC (permalink / raw)
To: Badal Nilawar; +Cc: intel-xe
== Series Details ==
Series: Add ocode late binding support for CRI (rev6)
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
[15:13:54] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[15:13:58] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[15:14:19] Starting KUnit Kernel (1/1)...
[15:14:19] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[15:14:19] ================= gpu_buddy (14 subtests) ==================
[15:14:19] [PASSED] gpu_test_buddy_alloc_limit
[15:14:19] [PASSED] gpu_test_buddy_alloc_optimistic
[15:14:19] [PASSED] gpu_test_buddy_alloc_pessimistic
[15:14:19] [PASSED] gpu_test_buddy_alloc_pathological
[15:14:19] [PASSED] gpu_test_buddy_alloc_contiguous
[15:14:19] [PASSED] gpu_test_buddy_alloc_clear
[15:14:19] [PASSED] gpu_test_buddy_alloc_range
[15:14:19] [PASSED] gpu_test_buddy_alloc_range_bias
[15:14:20] [PASSED] gpu_test_buddy_fragmentation_performance
[15:14:21] [PASSED] gpu_test_buddy_dirty_tracker_performance
[15:14:21] [PASSED] gpu_test_buddy_alloc_exceeds_max_order
[15:14:21] [PASSED] gpu_test_buddy_offset_aligned_allocation
[15:14:21] [PASSED] gpu_test_buddy_subtree_offset_alignment_stress
[15:14:21] [PASSED] gpu_test_buddy_addr_to_block
[15:14:21] ==================== [PASSED] gpu_buddy ====================
[15:14:21] ============================================================
[15:14:21] Testing complete. Ran 14 tests: passed: 14
[15:14:21] Elapsed time: 26.496s total, 4.261s configuring, 20.317s building, 1.870s 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
[15:14:21] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[15:14:23] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[15:15:00] Starting KUnit Kernel (1/1)...
[15:15:00] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[15:15:00] ================== guc_buf (11 subtests) ===================
[15:15:00] [PASSED] test_smallest
[15:15:00] [PASSED] test_largest
[15:15:00] [PASSED] test_granular
[15:15:00] [PASSED] test_unique
[15:15:00] [PASSED] test_overlap
[15:15:00] [PASSED] test_reusable
[15:15:00] [PASSED] test_too_big
[15:15:00] [PASSED] test_flush
[15:15:00] [PASSED] test_lookup
[15:15:00] [PASSED] test_data
[15:15:00] [PASSED] test_class
[15:15:00] ===================== [PASSED] guc_buf =====================
[15:15:00] =================== guc_dbm (7 subtests) ===================
[15:15:00] [PASSED] test_empty
[15:15:00] [PASSED] test_default
[15:15:00] ======================== test_size ========================
[15:15:00] [PASSED] 4
[15:15:00] [PASSED] 8
[15:15:00] [PASSED] 32
[15:15:00] [PASSED] 256
[15:15:00] ==================== [PASSED] test_size ====================
[15:15:00] ======================= test_reuse ========================
[15:15:00] [PASSED] 4
[15:15:00] [PASSED] 8
[15:15:00] [PASSED] 32
[15:15:00] [PASSED] 256
[15:15:00] =================== [PASSED] test_reuse ====================
[15:15:00] =================== test_range_overlap ====================
[15:15:00] [PASSED] 4
[15:15:00] [PASSED] 8
[15:15:00] [PASSED] 32
[15:15:00] [PASSED] 256
[15:15:00] =============== [PASSED] test_range_overlap ================
[15:15:00] =================== test_range_compact ====================
[15:15:00] [PASSED] 4
[15:15:00] [PASSED] 8
[15:15:00] [PASSED] 32
[15:15:00] [PASSED] 256
[15:15:00] =============== [PASSED] test_range_compact ================
[15:15:00] ==================== test_range_spare =====================
[15:15:00] [PASSED] 4
[15:15:00] [PASSED] 8
[15:15:00] [PASSED] 32
[15:15:00] [PASSED] 256
[15:15:00] ================ [PASSED] test_range_spare =================
[15:15:00] ===================== [PASSED] guc_dbm =====================
[15:15:00] ================== guc_idm (22 subtests) ===================
[15:15:00] [PASSED] bad_init
[15:15:00] [PASSED] no_init
[15:15:00] [PASSED] init_fini
[15:15:00] [PASSED] check_init_small
[15:15:00] [PASSED] check_init_shared
[15:15:00] [PASSED] check_used
[15:15:00] [PASSED] check_quota
[15:15:00] [PASSED] check_all
[15:15:00] [PASSED] check_limits
[15:15:00] [PASSED] check_overlap
[15:15:00] [PASSED] check_overlap_alloc
[15:15:00] [PASSED] check_overlap_release
[15:15:00] [PASSED] check_overlap_partial_init
[15:15:00] [PASSED] check_overlap_partial_shared_range_blocking
[15:15:00] [PASSED] check_used_usable
[15:15:00] [PASSED] check_used_shareable
[15:15:00] [PASSED] check_used_mixed
[15:15:00] [PASSED] check_release_usable_range
[15:15:00] [PASSED] check_release_shareable_range
[15:15:00] [PASSED] check_split_boundaries
[15:15:00] [PASSED] check_shareable_spare
[15:15:00] [PASSED] check_shareable_spare_fragmented_tail
[15:15:00] ===================== [PASSED] guc_idm =====================
[15:15:00] ============== guc_klv_helpers (13 subtests) ===============
[15:15:00] [PASSED] test_count
[15:15:00] [PASSED] test_encode_u32
[15:15:00] [PASSED] test_encode_u64
[15:15:00] [PASSED] test_encode_string
[15:15:00] [PASSED] test_encode_object_raw
[15:15:00] [PASSED] test_encode_object_klv
[15:15:00] [PASSED] test_encode_object_nested
[15:15:00] [PASSED] test_encode_object_basic
[15:15:00] ===================== test_decode_u16 =====================
[15:15:00] [PASSED] empty
[15:15:00] [PASSED] valid
[15:15:00] [PASSED] max
[15:15:00] [PASSED] big
[15:15:00] [PASSED] long
[15:15:00] ================= [PASSED] test_decode_u16 =================
[15:15:00] ===================== test_decode_u32 =====================
[15:15:00] [PASSED] empty
[15:15:00] [PASSED] valid
[15:15:00] [PASSED] max
[15:15:00] [PASSED] long
[15:15:00] ================= [PASSED] test_decode_u32 =================
[15:15:00] ===================== test_decode_u64 =====================
[15:15:00] [PASSED] empty
[15:15:00] [PASSED] short
[15:15:00] [PASSED] valid
[15:15:00] [PASSED] max
[15:15:00] [PASSED] long
[15:15:00] ================= [PASSED] test_decode_u64 =================
[15:15:00] ===================== test_decode_str =====================
[15:15:00] [PASSED] empty
[15:15:00] [PASSED] one
[15:15:00] [PASSED] one_trash
[15:15:00] [PASSED] two
[15:15:00] [PASSED] two_trash
[15:15:00] [PASSED] three
[15:15:00] [PASSED] dword
[15:15:00] [PASSED] four
[15:15:00] [PASSED] five
[15:15:00] [PASSED] six
[15:15:00] [PASSED] seven
[15:15:00] [PASSED] qword
[15:15:00] ================= [PASSED] test_decode_str =================
[15:15:00] [PASSED] test_print
[15:15:00] ================= [PASSED] guc_klv_helpers =================
[15:15:00] =================== xe_log (4 subtests) ====================
[15:15:00] [PASSED] demo_cper
[15:15:00] [PASSED] demo_dmesg
[15:15:00] ======================= test_dmesg ========================
[15:15:00] [PASSED] test_fatal
[15:15:00] [PASSED] test_fatal_tile
[15:15:00] [PASSED] test_fatal_gt
[15:15:00] [PASSED] test_fatal_comp
[15:15:00] [PASSED] test_fatal_comp_tile
[15:15:00] [PASSED] test_fatal_comp_gt
[15:15:00] [PASSED] test_fatal_all
[15:15:00] [PASSED] test_recoverable
[15:15:00] [PASSED] test_recoverable_tile
[15:15:00] [PASSED] test_recoverable_gt
[15:15:00] [PASSED] test_recoverable_comp
[15:15:00] [PASSED] test_recoverable_comp_tile
[15:15:00] [PASSED] test_recoverable_comp_gt
[15:15:01] [PASSED] test_recoverable_all
[15:15:01] [PASSED] test_info
[15:15:01] [PASSED] test_info_tile
[15:15:01] [PASSED] test_info_gt
[15:15:01] [PASSED] test_info_err
[15:15:01] [PASSED] test_info_comp
[15:15:01] [PASSED] test_info_comp_tile
[15:15:01] [PASSED] test_info_comp_gt
[15:15:01] [PASSED] test_info_all
[15:15:01] [PASSED] test_hw_fatal
[15:15:01] [PASSED] test_hw_recoverable
[15:15:01] [PASSED] test_hw_corrected
[15:15:01] [PASSED] test_hw_informational
[15:15:01] =================== [PASSED] test_dmesg ====================
[15:15:01] ====================== test_invalid =======================
[15:15:01] [SKIPPED] no-component no-location no-warn (requires CONFIG_DRM_XE_DEBUG)
[15:15:01] [SKIPPED] reserved location (requires CONFIG_DRM_XE_DEBUG)
[15:15:01] [SKIPPED] unknown location (requires CONFIG_DRM_XE_DEBUG)
[15:15:01] [SKIPPED] nonzero-device-id location (requires CONFIG_DRM_XE_DEBUG)
[15:15:01] [SKIPPED] invalid-tile-id location (requires CONFIG_DRM_XE_DEBUG)
[15:15:01] [SKIPPED] invalid-gt-id location (requires CONFIG_DRM_XE_DEBUG)
[15:15:01] [SKIPPED] unknown component class (requires CONFIG_DRM_XE_DEBUG)
[15:15:01] [SKIPPED] unknown system component (requires CONFIG_DRM_XE_DEBUG)
[15:15:01] [SKIPPED] unknown hardware component (requires CONFIG_DRM_XE_DEBUG)
[15:15:01] [SKIPPED] unknown component and location (requires CONFIG_DRM_XE_DEBUG)
[15:15:01] ================== [SKIPPED] test_invalid ==================
[15:15:01] ===================== [PASSED] xe_log ======================
[15:15:01] ================== no_relay (3 subtests) ===================
[15:15:01] [PASSED] xe_drops_guc2pf_if_not_ready
[15:15:01] [PASSED] xe_drops_guc2vf_if_not_ready
[15:15:01] [PASSED] xe_rejects_send_if_not_ready
[15:15:01] ==================== [PASSED] no_relay =====================
[15:15:01] ================== pf_relay (14 subtests) ==================
[15:15:01] [PASSED] pf_rejects_guc2pf_too_short
[15:15:01] [PASSED] pf_rejects_guc2pf_too_long
[15:15:01] [PASSED] pf_rejects_guc2pf_no_payload
[15:15:01] [PASSED] pf_fails_no_payload
[15:15:01] [PASSED] pf_fails_bad_origin
[15:15:01] [PASSED] pf_fails_bad_type
[15:15:01] [PASSED] pf_txn_reports_error
[15:15:01] [PASSED] pf_txn_sends_pf2guc
[15:15:01] [PASSED] pf_sends_pf2guc
[15:15:01] [SKIPPED] pf_loopback_nop (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[15:15:01] [SKIPPED] pf_loopback_echo (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[15:15:01] [SKIPPED] pf_loopback_fail (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[15:15:01] [SKIPPED] pf_loopback_busy (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[15:15:01] [SKIPPED] pf_loopback_retry (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[15:15:01] ==================== [PASSED] pf_relay =====================
[15:15:01] ================== vf_relay (3 subtests) ===================
[15:15:01] [PASSED] vf_rejects_guc2vf_too_short
[15:15:01] [PASSED] vf_rejects_guc2vf_too_long
[15:15:01] [PASSED] vf_rejects_guc2vf_no_payload
[15:15:01] ==================== [PASSED] vf_relay =====================
[15:15:01] ================ pf_gt_config (9 subtests) =================
[15:15:01] [PASSED] fair_contexts_1vf
[15:15:01] [PASSED] fair_doorbells_1vf
[15:15:01] [PASSED] fair_ggtt_1vf
[15:15:01] ====================== fair_vram_1vf ======================
[15:15:01] [PASSED] 3.50 GiB
[15:15:01] [PASSED] 11.5 GiB
[15:15:01] [PASSED] 15.5 GiB
[15:15:01] [PASSED] 31.5 GiB
[15:15:01] [PASSED] 63.5 GiB
[15:15:01] [PASSED] 1.91 GiB
[15:15:01] ================== [PASSED] fair_vram_1vf ==================
[15:15:01] ================ fair_vram_1vf_admin_only =================
[15:15:01] [PASSED] 3.50 GiB
[15:15:01] [PASSED] 11.5 GiB
[15:15:01] [PASSED] 15.5 GiB
[15:15:01] [PASSED] 31.5 GiB
[15:15:01] [PASSED] 63.5 GiB
[15:15:01] [PASSED] 1.91 GiB
[15:15:01] ============ [PASSED] fair_vram_1vf_admin_only =============
[15:15:01] ====================== fair_contexts ======================
[15:15:01] [PASSED] 1 VF
[15:15:01] [PASSED] 2 VFs
[15:15:01] [PASSED] 3 VFs
[15:15:01] [PASSED] 4 VFs
[15:15:01] [PASSED] 5 VFs
[15:15:01] [PASSED] 6 VFs
[15:15:01] [PASSED] 7 VFs
[15:15:01] [PASSED] 8 VFs
[15:15:01] [PASSED] 9 VFs
[15:15:01] [PASSED] 10 VFs
[15:15:01] [PASSED] 11 VFs
[15:15:01] [PASSED] 12 VFs
[15:15:01] [PASSED] 13 VFs
[15:15:01] [PASSED] 14 VFs
[15:15:01] [PASSED] 15 VFs
[15:15:01] [PASSED] 16 VFs
[15:15:01] [PASSED] 17 VFs
[15:15:01] [PASSED] 18 VFs
[15:15:01] [PASSED] 19 VFs
[15:15:01] [PASSED] 20 VFs
[15:15:01] [PASSED] 21 VFs
[15:15:01] [PASSED] 22 VFs
[15:15:01] [PASSED] 23 VFs
[15:15:01] [PASSED] 24 VFs
[15:15:01] [PASSED] 25 VFs
[15:15:01] [PASSED] 26 VFs
[15:15:01] [PASSED] 27 VFs
[15:15:01] [PASSED] 28 VFs
[15:15:01] [PASSED] 29 VFs
[15:15:01] [PASSED] 30 VFs
[15:15:01] [PASSED] 31 VFs
[15:15:01] [PASSED] 32 VFs
[15:15:01] [PASSED] 33 VFs
[15:15:01] [PASSED] 34 VFs
[15:15:01] [PASSED] 35 VFs
[15:15:01] [PASSED] 36 VFs
[15:15:01] [PASSED] 37 VFs
[15:15:01] [PASSED] 38 VFs
[15:15:01] [PASSED] 39 VFs
[15:15:01] [PASSED] 40 VFs
[15:15:01] [PASSED] 41 VFs
[15:15:01] [PASSED] 42 VFs
[15:15:01] [PASSED] 43 VFs
[15:15:01] [PASSED] 44 VFs
[15:15:01] [PASSED] 45 VFs
[15:15:01] [PASSED] 46 VFs
[15:15:01] [PASSED] 47 VFs
[15:15:01] [PASSED] 48 VFs
[15:15:01] [PASSED] 49 VFs
[15:15:01] [PASSED] 50 VFs
[15:15:01] [PASSED] 51 VFs
[15:15:01] [PASSED] 52 VFs
[15:15:01] [PASSED] 53 VFs
[15:15:01] [PASSED] 54 VFs
[15:15:01] [PASSED] 55 VFs
[15:15:01] [PASSED] 56 VFs
[15:15:01] [PASSED] 57 VFs
[15:15:01] [PASSED] 58 VFs
[15:15:01] [PASSED] 59 VFs
[15:15:01] [PASSED] 60 VFs
[15:15:01] [PASSED] 61 VFs
[15:15:01] [PASSED] 62 VFs
[15:15:01] [PASSED] 63 VFs
[15:15:01] ================== [PASSED] fair_contexts ==================
[15:15:01] ===================== fair_doorbells ======================
[15:15:01] [PASSED] 1 VF
[15:15:01] [PASSED] 2 VFs
[15:15:01] [PASSED] 3 VFs
[15:15:01] [PASSED] 4 VFs
[15:15:01] [PASSED] 5 VFs
[15:15:01] [PASSED] 6 VFs
[15:15:01] [PASSED] 7 VFs
[15:15:01] [PASSED] 8 VFs
[15:15:01] [PASSED] 9 VFs
[15:15:01] [PASSED] 10 VFs
[15:15:01] [PASSED] 11 VFs
[15:15:01] [PASSED] 12 VFs
[15:15:01] [PASSED] 13 VFs
[15:15:01] [PASSED] 14 VFs
[15:15:01] [PASSED] 15 VFs
[15:15:01] [PASSED] 16 VFs
[15:15:01] [PASSED] 17 VFs
[15:15:01] [PASSED] 18 VFs
[15:15:01] [PASSED] 19 VFs
[15:15:01] [PASSED] 20 VFs
[15:15:01] [PASSED] 21 VFs
[15:15:01] [PASSED] 22 VFs
[15:15:01] [PASSED] 23 VFs
[15:15:01] [PASSED] 24 VFs
[15:15:01] [PASSED] 25 VFs
[15:15:01] [PASSED] 26 VFs
[15:15:01] [PASSED] 27 VFs
[15:15:01] [PASSED] 28 VFs
[15:15:01] [PASSED] 29 VFs
[15:15:01] [PASSED] 30 VFs
[15:15:01] [PASSED] 31 VFs
[15:15:01] [PASSED] 32 VFs
[15:15:01] [PASSED] 33 VFs
[15:15:01] [PASSED] 34 VFs
[15:15:01] [PASSED] 35 VFs
[15:15:01] [PASSED] 36 VFs
[15:15:01] [PASSED] 37 VFs
[15:15:01] [PASSED] 38 VFs
[15:15:01] [PASSED] 39 VFs
[15:15:01] [PASSED] 40 VFs
[15:15:01] [PASSED] 41 VFs
[15:15:01] [PASSED] 42 VFs
[15:15:01] [PASSED] 43 VFs
[15:15:01] [PASSED] 44 VFs
[15:15:01] [PASSED] 45 VFs
[15:15:01] [PASSED] 46 VFs
[15:15:01] [PASSED] 47 VFs
[15:15:01] [PASSED] 48 VFs
[15:15:01] [PASSED] 49 VFs
[15:15:01] [PASSED] 50 VFs
[15:15:01] [PASSED] 51 VFs
[15:15:01] [PASSED] 52 VFs
[15:15:01] [PASSED] 53 VFs
[15:15:01] [PASSED] 54 VFs
[15:15:01] [PASSED] 55 VFs
[15:15:01] [PASSED] 56 VFs
[15:15:01] [PASSED] 57 VFs
[15:15:01] [PASSED] 58 VFs
[15:15:01] [PASSED] 59 VFs
[15:15:01] [PASSED] 60 VFs
[15:15:01] [PASSED] 61 VFs
[15:15:01] [PASSED] 62 VFs
[15:15:01] [PASSED] 63 VFs
[15:15:01] ================= [PASSED] fair_doorbells ==================
[15:15:01] ======================== fair_ggtt ========================
[15:15:01] [PASSED] 1 VF
[15:15:01] [PASSED] 2 VFs
[15:15:01] [PASSED] 3 VFs
[15:15:01] [PASSED] 4 VFs
[15:15:01] [PASSED] 5 VFs
[15:15:01] [PASSED] 6 VFs
[15:15:01] [PASSED] 7 VFs
[15:15:01] [PASSED] 8 VFs
[15:15:01] [PASSED] 9 VFs
[15:15:01] [PASSED] 10 VFs
[15:15:01] [PASSED] 11 VFs
[15:15:01] [PASSED] 12 VFs
[15:15:01] [PASSED] 13 VFs
[15:15:01] [PASSED] 14 VFs
[15:15:01] [PASSED] 15 VFs
[15:15:01] [PASSED] 16 VFs
[15:15:01] [PASSED] 17 VFs
[15:15:01] [PASSED] 18 VFs
[15:15:01] [PASSED] 19 VFs
[15:15:01] [PASSED] 20 VFs
[15:15:01] [PASSED] 21 VFs
[15:15:01] [PASSED] 22 VFs
[15:15:01] [PASSED] 23 VFs
[15:15:01] [PASSED] 24 VFs
[15:15:01] [PASSED] 25 VFs
[15:15:01] [PASSED] 26 VFs
[15:15:01] [PASSED] 27 VFs
[15:15:01] [PASSED] 28 VFs
[15:15:01] [PASSED] 29 VFs
[15:15:01] [PASSED] 30 VFs
[15:15:01] [PASSED] 31 VFs
[15:15:01] [PASSED] 32 VFs
[15:15:01] [PASSED] 33 VFs
[15:15:01] [PASSED] 34 VFs
[15:15:01] [PASSED] 35 VFs
[15:15:01] [PASSED] 36 VFs
[15:15:01] [PASSED] 37 VFs
[15:15:01] [PASSED] 38 VFs
[15:15:01] [PASSED] 39 VFs
[15:15:01] [PASSED] 40 VFs
[15:15:01] [PASSED] 41 VFs
[15:15:01] [PASSED] 42 VFs
[15:15:01] [PASSED] 43 VFs
[15:15:01] [PASSED] 44 VFs
[15:15:01] [PASSED] 45 VFs
[15:15:01] [PASSED] 46 VFs
[15:15:01] [PASSED] 47 VFs
[15:15:01] [PASSED] 48 VFs
[15:15:01] [PASSED] 49 VFs
[15:15:01] [PASSED] 50 VFs
[15:15:01] [PASSED] 51 VFs
[15:15:01] [PASSED] 52 VFs
[15:15:01] [PASSED] 53 VFs
[15:15:01] [PASSED] 54 VFs
[15:15:01] [PASSED] 55 VFs
[15:15:01] [PASSED] 56 VFs
[15:15:01] [PASSED] 57 VFs
[15:15:01] [PASSED] 58 VFs
[15:15:01] [PASSED] 59 VFs
[15:15:01] [PASSED] 60 VFs
[15:15:01] [PASSED] 61 VFs
[15:15:01] [PASSED] 62 VFs
[15:15:01] [PASSED] 63 VFs
[15:15:01] ==================== [PASSED] fair_ggtt ====================
[15:15:01] ======================== fair_vram ========================
[15:15:01] [PASSED] 1 VF
[15:15:01] [PASSED] 2 VFs
[15:15:01] [PASSED] 3 VFs
[15:15:01] [PASSED] 4 VFs
[15:15:01] [PASSED] 5 VFs
[15:15:01] [PASSED] 6 VFs
[15:15:01] [PASSED] 7 VFs
[15:15:01] [PASSED] 8 VFs
[15:15:01] [PASSED] 9 VFs
[15:15:01] [PASSED] 10 VFs
[15:15:01] [PASSED] 11 VFs
[15:15:01] [PASSED] 12 VFs
[15:15:01] [PASSED] 13 VFs
[15:15:01] [PASSED] 14 VFs
[15:15:01] [PASSED] 15 VFs
[15:15:01] [PASSED] 16 VFs
[15:15:01] [PASSED] 17 VFs
[15:15:01] [PASSED] 18 VFs
[15:15:01] [PASSED] 19 VFs
[15:15:01] [PASSED] 20 VFs
[15:15:01] [PASSED] 21 VFs
[15:15:01] [PASSED] 22 VFs
[15:15:01] [PASSED] 23 VFs
[15:15:01] [PASSED] 24 VFs
[15:15:01] [PASSED] 25 VFs
[15:15:01] [PASSED] 26 VFs
[15:15:01] [PASSED] 27 VFs
[15:15:01] [PASSED] 28 VFs
[15:15:01] [PASSED] 29 VFs
[15:15:01] [PASSED] 30 VFs
[15:15:01] [PASSED] 31 VFs
[15:15:01] [PASSED] 32 VFs
[15:15:01] [PASSED] 33 VFs
[15:15:01] [PASSED] 34 VFs
[15:15:01] [PASSED] 35 VFs
[15:15:01] [PASSED] 36 VFs
[15:15:01] [PASSED] 37 VFs
[15:15:01] [PASSED] 38 VFs
[15:15:01] [PASSED] 39 VFs
[15:15:01] [PASSED] 40 VFs
[15:15:01] [PASSED] 41 VFs
[15:15:01] [PASSED] 42 VFs
[15:15:01] [PASSED] 43 VFs
[15:15:01] [PASSED] 44 VFs
[15:15:01] [PASSED] 45 VFs
[15:15:01] [PASSED] 46 VFs
[15:15:01] [PASSED] 47 VFs
[15:15:01] [PASSED] 48 VFs
[15:15:01] [PASSED] 49 VFs
[15:15:01] [PASSED] 50 VFs
[15:15:01] [PASSED] 51 VFs
[15:15:01] [PASSED] 52 VFs
[15:15:01] [PASSED] 53 VFs
[15:15:01] [PASSED] 54 VFs
[15:15:01] [PASSED] 55 VFs
[15:15:01] [PASSED] 56 VFs
[15:15:01] [PASSED] 57 VFs
[15:15:01] [PASSED] 58 VFs
[15:15:01] [PASSED] 59 VFs
[15:15:01] [PASSED] 60 VFs
[15:15:01] [PASSED] 61 VFs
[15:15:01] [PASSED] 62 VFs
[15:15:01] [PASSED] 63 VFs
[15:15:01] ==================== [PASSED] fair_vram ====================
[15:15:01] ================== [PASSED] pf_gt_config ===================
[15:15:01] ===================== lmtt (1 subtest) =====================
[15:15:01] ======================== test_ops =========================
[15:15:01] [PASSED] 2-level
[15:15:01] [PASSED] multi-level
[15:15:01] ==================== [PASSED] test_ops =====================
[15:15:01] ====================== [PASSED] lmtt =======================
[15:15:01] ================= sriov_packet (1 subtest) =================
[15:15:01] [PASSED] test_descriptor_init
[15:15:01] ================== [PASSED] sriov_packet ===================
[15:15:01] ================= pf_service (11 subtests) =================
[15:15:01] [PASSED] pf_negotiate_any
[15:15:01] [PASSED] pf_negotiate_base_match
[15:15:01] [PASSED] pf_negotiate_base_newer
[15:15:01] [PASSED] pf_negotiate_base_next
[15:15:01] [SKIPPED] pf_negotiate_base_older (no older minor)
[15:15:01] [PASSED] pf_negotiate_base_prev
[15:15:01] [PASSED] pf_negotiate_latest_match
[15:15:01] [PASSED] pf_negotiate_latest_newer
[15:15:01] [PASSED] pf_negotiate_latest_next
[15:15:01] [SKIPPED] pf_negotiate_latest_older (no older minor)
[15:15:01] [SKIPPED] pf_negotiate_latest_prev (no prev major)
[15:15:01] =================== [PASSED] pf_service ====================
[15:15:01] ================= xe_guc_g2g (2 subtests) ==================
[15:15:01] ============== xe_live_guc_g2g_kunit_default ==============
[15:15:01] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[15:15:01] ============== xe_live_guc_g2g_kunit_allmem ===============
[15:15:01] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[15:15:01] =================== [SKIPPED] xe_guc_g2g ===================
[15:15:01] =================== xe_mocs (2 subtests) ===================
[15:15:01] ================ xe_live_mocs_kernel_kunit ================
[15:15:01] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[15:15:01] ================ xe_live_mocs_reset_kunit =================
[15:15:01] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[15:15:01] ==================== [SKIPPED] xe_mocs =====================
[15:15:01] ================= xe_migrate (3 subtests) ==================
[15:15:01] ================= xe_migrate_sanity_kunit =================
[15:15:01] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[15:15:01] ================== xe_validate_ccs_kunit ==================
[15:15:01] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[15:15:01] ============= xe_migrate_access_memory_kunit ==============
[15:15:01] ========= [SKIPPED] xe_migrate_access_memory_kunit =========
[15:15:01] =================== [SKIPPED] xe_migrate ===================
[15:15:01] ================== xe_dma_buf (1 subtest) ==================
[15:15:01] ==================== xe_dma_buf_kunit =====================
[15:15:01] ================ [SKIPPED] xe_dma_buf_kunit ================
[15:15:01] =================== [SKIPPED] xe_dma_buf ===================
[15:15:01] ================= xe_bo_shrink (1 subtest) =================
[15:15:01] =================== xe_bo_shrink_kunit ====================
[15:15:01] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[15:15:01] ================== [SKIPPED] xe_bo_shrink ==================
[15:15:01] ==================== xe_bo (2 subtests) ====================
[15:15:01] ================== xe_ccs_migrate_kunit ===================
[15:15:01] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[15:15:01] ==================== xe_bo_evict_kunit ====================
[15:15:01] =============== [SKIPPED] xe_bo_evict_kunit ================
[15:15:01] ===================== [SKIPPED] xe_bo ======================
[15:15:01] =================== xe_any (9 subtests) ====================
[15:15:01] [PASSED] test_to_xe
[15:15:01] [PASSED] test_to_dev
[15:15:01] [PASSED] test_to_pdev
[15:15:01] [PASSED] test_to_drm
[15:15:01] [PASSED] test_if_pdev
[15:15:01] [PASSED] test_if_xe
[15:15:01] [PASSED] test_if_tile
[15:15:01] [PASSED] test_if_gt
[15:15:01] [PASSED] test_to_id
[15:15:01] ===================== [PASSED] xe_any ======================
[15:15:01] ==================== args (13 subtests) ====================
[15:15:01] [PASSED] count_args_test
[15:15:01] [PASSED] call_args_example
[15:15:01] [PASSED] call_args_test
[15:15:01] [PASSED] drop_first_arg_example
[15:15:01] [PASSED] drop_first_arg_test
[15:15:01] [PASSED] first_arg_example
[15:15:01] [PASSED] first_arg_test
[15:15:01] [PASSED] last_arg_example
[15:15:01] [PASSED] last_arg_test
[15:15:01] [PASSED] pick_arg_example
[15:15:01] [PASSED] if_args_example
[15:15:01] [PASSED] if_args_test
[15:15:01] [PASSED] sep_comma_example
[15:15:01] ====================== [PASSED] args =======================
[15:15:01] =================== xe_pci (3 subtests) ====================
[15:15:01] ==================== check_graphics_ip ====================
[15:15:01] [PASSED] 12.00 Xe_LP
[15:15:01] [PASSED] 12.10 Xe_LP+
[15:15:01] [PASSED] 12.55 Xe_HPG
[15:15:01] [PASSED] 12.60 Xe_HPC
[15:15:01] [PASSED] 12.70 Xe_LPG
[15:15:01] [PASSED] 12.71 Xe_LPG
[15:15:01] [PASSED] 12.74 Xe_LPG+
[15:15:01] [PASSED] 20.01 Xe2_HPG
[15:15:01] [PASSED] 20.02 Xe2_HPG
[15:15:01] [PASSED] 20.04 Xe2_LPG
[15:15:01] [PASSED] 30.00 Xe3_LPG
[15:15:01] [PASSED] 30.01 Xe3_LPG
[15:15:01] [PASSED] 30.03 Xe3_LPG
[15:15:01] [PASSED] 30.04 Xe3_LPG
[15:15:01] [PASSED] 30.05 Xe3_LPG
[15:15:01] [PASSED] 35.10 Xe3p_LPG
[15:15:01] [PASSED] 35.11 Xe3p_XPC
[15:15:01] ================ [PASSED] check_graphics_ip ================
[15:15:01] ===================== check_media_ip ======================
[15:15:01] [PASSED] 12.00 Xe_M
[15:15:01] [PASSED] 12.55 Xe_HPM
[15:15:01] [PASSED] 13.00 Xe_LPM+
[15:15:01] [PASSED] 13.01 Xe2_HPM
[15:15:01] [PASSED] 20.00 Xe2_LPM
[15:15:01] [PASSED] 30.00 Xe3_LPM
[15:15:01] [PASSED] 30.02 Xe3_LPM
[15:15:01] [PASSED] 35.00 Xe3p_LPM
[15:15:01] [PASSED] 35.03 Xe3p_HPM
[15:15:01] ================= [PASSED] check_media_ip ==================
[15:15:01] =================== check_platform_desc ===================
[15:15:01] [PASSED] 0x9A60 (TIGERLAKE)
[15:15:01] [PASSED] 0x9A68 (TIGERLAKE)
[15:15:01] [PASSED] 0x9A70 (TIGERLAKE)
[15:15:01] [PASSED] 0x9A40 (TIGERLAKE)
[15:15:01] [PASSED] 0x9A49 (TIGERLAKE)
[15:15:01] [PASSED] 0x9A59 (TIGERLAKE)
[15:15:01] [PASSED] 0x9A78 (TIGERLAKE)
[15:15:01] [PASSED] 0x9AC0 (TIGERLAKE)
[15:15:01] [PASSED] 0x9AC9 (TIGERLAKE)
[15:15:01] [PASSED] 0x9AD9 (TIGERLAKE)
[15:15:01] [PASSED] 0x9AF8 (TIGERLAKE)
[15:15:01] [PASSED] 0x4C80 (ROCKETLAKE)
[15:15:01] [PASSED] 0x4C8A (ROCKETLAKE)
[15:15:01] [PASSED] 0x4C8B (ROCKETLAKE)
[15:15:01] [PASSED] 0x4C8C (ROCKETLAKE)
[15:15:01] [PASSED] 0x4C90 (ROCKETLAKE)
[15:15:01] [PASSED] 0x4C9A (ROCKETLAKE)
[15:15:01] [PASSED] 0x4680 (ALDERLAKE_S)
[15:15:01] [PASSED] 0x4682 (ALDERLAKE_S)
[15:15:01] [PASSED] 0x4688 (ALDERLAKE_S)
[15:15:01] [PASSED] 0x468A (ALDERLAKE_S)
[15:15:01] [PASSED] 0x468B (ALDERLAKE_S)
[15:15:01] [PASSED] 0x4690 (ALDERLAKE_S)
[15:15:01] [PASSED] 0x4692 (ALDERLAKE_S)
[15:15:01] [PASSED] 0x4693 (ALDERLAKE_S)
[15:15:01] [PASSED] 0x46A0 (ALDERLAKE_P)
[15:15:01] [PASSED] 0x46A1 (ALDERLAKE_P)
[15:15:01] [PASSED] 0x46A2 (ALDERLAKE_P)
[15:15:01] [PASSED] 0x46A3 (ALDERLAKE_P)
[15:15:01] [PASSED] 0x46A6 (ALDERLAKE_P)
[15:15:01] [PASSED] 0x46A8 (ALDERLAKE_P)
[15:15:01] [PASSED] 0x46AA (ALDERLAKE_P)
[15:15:01] [PASSED] 0x462A (ALDERLAKE_P)
[15:15:01] [PASSED] 0x4626 (ALDERLAKE_P)
[15:15:01] [PASSED] 0x4628 (ALDERLAKE_P)
[15:15:01] [PASSED] 0x46B0 (ALDERLAKE_P)
[15:15:01] [PASSED] 0x46B1 (ALDERLAKE_P)
[15:15:01] [PASSED] 0x46B2 (ALDERLAKE_P)
[15:15:01] [PASSED] 0x46B3 (ALDERLAKE_P)
[15:15:01] [PASSED] 0x46C0 (ALDERLAKE_P)
[15:15:01] [PASSED] 0x46C1 (ALDERLAKE_P)
[15:15:01] [PASSED] 0x46C2 (ALDERLAKE_P)
[15:15:01] [PASSED] 0x46C3 (ALDERLAKE_P)
[15:15:01] [PASSED] 0x46D0 (ALDERLAKE_N)
[15:15:01] [PASSED] 0x46D1 (ALDERLAKE_N)
[15:15:01] [PASSED] 0x46D2 (ALDERLAKE_N)
[15:15:01] [PASSED] 0x46D3 (ALDERLAKE_N)
[15:15:01] [PASSED] 0x46D4 (ALDERLAKE_N)
[15:15:01] [PASSED] 0xA721 (ALDERLAKE_P)
[15:15:01] [PASSED] 0xA7A1 (ALDERLAKE_P)
[15:15:01] [PASSED] 0xA7A9 (ALDERLAKE_P)
[15:15:01] [PASSED] 0xA7AC (ALDERLAKE_P)
[15:15:01] [PASSED] 0xA7AD (ALDERLAKE_P)
[15:15:01] [PASSED] 0xA720 (ALDERLAKE_P)
[15:15:01] [PASSED] 0xA7A0 (ALDERLAKE_P)
[15:15:01] [PASSED] 0xA7A8 (ALDERLAKE_P)
[15:15:01] [PASSED] 0xA7AA (ALDERLAKE_P)
[15:15:01] [PASSED] 0xA7AB (ALDERLAKE_P)
[15:15:01] [PASSED] 0xA780 (ALDERLAKE_S)
[15:15:01] [PASSED] 0xA781 (ALDERLAKE_S)
[15:15:01] [PASSED] 0xA782 (ALDERLAKE_S)
[15:15:01] [PASSED] 0xA783 (ALDERLAKE_S)
[15:15:01] [PASSED] 0xA788 (ALDERLAKE_S)
[15:15:01] [PASSED] 0xA789 (ALDERLAKE_S)
[15:15:01] [PASSED] 0xA78A (ALDERLAKE_S)
[15:15:01] [PASSED] 0xA78B (ALDERLAKE_S)
[15:15:01] [PASSED] 0x4905 (DG1)
[15:15:01] [PASSED] 0x4906 (DG1)
[15:15:01] [PASSED] 0x4907 (DG1)
[15:15:01] [PASSED] 0x4908 (DG1)
[15:15:01] [PASSED] 0x4909 (DG1)
[15:15:01] [PASSED] 0x56C0 (DG2)
[15:15:01] [PASSED] 0x56C2 (DG2)
[15:15:01] [PASSED] 0x56C1 (DG2)
[15:15:01] [PASSED] 0x7D51 (METEORLAKE)
[15:15:01] [PASSED] 0x7DD1 (METEORLAKE)
[15:15:01] [PASSED] 0x7D41 (METEORLAKE)
[15:15:01] [PASSED] 0x7D67 (METEORLAKE)
[15:15:01] [PASSED] 0xB640 (METEORLAKE)
[15:15:01] [PASSED] 0x56A0 (DG2)
[15:15:01] [PASSED] 0x56A1 (DG2)
[15:15:01] [PASSED] 0x56A2 (DG2)
[15:15:01] [PASSED] 0x56BE (DG2)
[15:15:01] [PASSED] 0x56BF (DG2)
[15:15:01] [PASSED] 0x5690 (DG2)
[15:15:01] [PASSED] 0x5691 (DG2)
[15:15:01] [PASSED] 0x5692 (DG2)
[15:15:01] [PASSED] 0x56A5 (DG2)
[15:15:01] [PASSED] 0x56A6 (DG2)
[15:15:01] [PASSED] 0x56B0 (DG2)
[15:15:01] [PASSED] 0x56B1 (DG2)
[15:15:01] [PASSED] 0x56BA (DG2)
[15:15:01] [PASSED] 0x56BB (DG2)
[15:15:01] [PASSED] 0x56BC (DG2)
[15:15:01] [PASSED] 0x56BD (DG2)
[15:15:01] [PASSED] 0x5693 (DG2)
[15:15:01] [PASSED] 0x5694 (DG2)
[15:15:01] [PASSED] 0x5695 (DG2)
[15:15:01] [PASSED] 0x56A3 (DG2)
[15:15:01] [PASSED] 0x56A4 (DG2)
[15:15:01] [PASSED] 0x56B2 (DG2)
[15:15:01] [PASSED] 0x56B3 (DG2)
[15:15:01] [PASSED] 0x5696 (DG2)
[15:15:01] [PASSED] 0x5697 (DG2)
[15:15:01] [PASSED] 0xB69 (PVC)
[15:15:01] [PASSED] 0xB6E (PVC)
[15:15:01] [PASSED] 0xBD4 (PVC)
[15:15:01] [PASSED] 0xBD5 (PVC)
[15:15:01] [PASSED] 0xBD6 (PVC)
[15:15:01] [PASSED] 0xBD7 (PVC)
[15:15:01] [PASSED] 0xBD8 (PVC)
[15:15:01] [PASSED] 0xBD9 (PVC)
[15:15:01] [PASSED] 0xBDA (PVC)
[15:15:01] [PASSED] 0xBDB (PVC)
[15:15:01] [PASSED] 0xBE0 (PVC)
[15:15:01] [PASSED] 0xBE1 (PVC)
[15:15:01] [PASSED] 0xBE5 (PVC)
[15:15:01] [PASSED] 0x7D40 (METEORLAKE)
[15:15:01] [PASSED] 0x7D45 (METEORLAKE)
[15:15:01] [PASSED] 0x7D55 (METEORLAKE)
[15:15:01] [PASSED] 0x7D60 (METEORLAKE)
[15:15:01] [PASSED] 0x7DD5 (METEORLAKE)
[15:15:01] [PASSED] 0x6420 (LUNARLAKE)
[15:15:01] [PASSED] 0x64A0 (LUNARLAKE)
[15:15:01] [PASSED] 0x64B0 (LUNARLAKE)
[15:15:01] [PASSED] 0xE202 (BATTLEMAGE)
[15:15:01] [PASSED] 0xE209 (BATTLEMAGE)
[15:15:01] [PASSED] 0xE20B (BATTLEMAGE)
[15:15:01] [PASSED] 0xE20C (BATTLEMAGE)
[15:15:01] [PASSED] 0xE20D (BATTLEMAGE)
[15:15:01] [PASSED] 0xE210 (BATTLEMAGE)
[15:15:01] [PASSED] 0xE211 (BATTLEMAGE)
[15:15:01] [PASSED] 0xE212 (BATTLEMAGE)
[15:15:01] [PASSED] 0xE216 (BATTLEMAGE)
[15:15:01] [PASSED] 0xE220 (BATTLEMAGE)
[15:15:01] [PASSED] 0xE221 (BATTLEMAGE)
[15:15:01] [PASSED] 0xE222 (BATTLEMAGE)
[15:15:01] [PASSED] 0xE223 (BATTLEMAGE)
[15:15:01] [PASSED] 0xB080 (PANTHERLAKE)
[15:15:01] [PASSED] 0xB081 (PANTHERLAKE)
[15:15:01] [PASSED] 0xB082 (PANTHERLAKE)
[15:15:01] [PASSED] 0xB083 (PANTHERLAKE)
[15:15:01] [PASSED] 0xB084 (PANTHERLAKE)
[15:15:01] [PASSED] 0xB085 (PANTHERLAKE)
[15:15:01] [PASSED] 0xB086 (PANTHERLAKE)
[15:15:01] [PASSED] 0xB087 (PANTHERLAKE)
[15:15:01] [PASSED] 0xB08F (PANTHERLAKE)
[15:15:01] [PASSED] 0xB090 (PANTHERLAKE)
[15:15:01] [PASSED] 0xB0A0 (PANTHERLAKE)
[15:15:01] [PASSED] 0xB0A1 (PANTHERLAKE)
[15:15:01] [PASSED] 0xB0B0 (PANTHERLAKE)
[15:15:01] [PASSED] 0xFD80 (PANTHERLAKE)
[15:15:01] [PASSED] 0xFD81 (PANTHERLAKE)
[15:15:01] [PASSED] 0xD740 (NOVALAKE_S)
[15:15:01] [PASSED] 0xD741 (NOVALAKE_S)
[15:15:01] [PASSED] 0xD742 (NOVALAKE_S)
[15:15:01] [PASSED] 0xD743 (NOVALAKE_S)
[15:15:01] [PASSED] 0xD745 (NOVALAKE_S)
[15:15:01] [PASSED] 0xD74A (NOVALAKE_S)
[15:15:01] [PASSED] 0xD74B (NOVALAKE_S)
[15:15:01] [PASSED] 0x674C (CRESCENTISLAND)
[15:15:01] [PASSED] 0x674D (CRESCENTISLAND)
[15:15:01] [PASSED] 0x674E (CRESCENTISLAND)
[15:15:01] [PASSED] 0x674F (CRESCENTISLAND)
[15:15:01] [PASSED] 0x6750 (CRESCENTISLAND)
[15:15:01] [PASSED] 0x6751 (CRESCENTISLAND)
[15:15:01] [PASSED] 0x6752 (CRESCENTISLAND)
[15:15:01] [PASSED] 0xD750 (NOVALAKE_P)
[15:15:01] [PASSED] 0xD751 (NOVALAKE_P)
[15:15:01] [PASSED] 0xD752 (NOVALAKE_P)
[15:15:01] [PASSED] 0xD753 (NOVALAKE_P)
[15:15:01] [PASSED] 0xD754 (NOVALAKE_P)
[15:15:01] [PASSED] 0xD755 (NOVALAKE_P)
[15:15:01] [PASSED] 0xD756 (NOVALAKE_P)
[15:15:01] [PASSED] 0xD757 (NOVALAKE_P)
[15:15:01] [PASSED] 0xD75F (NOVALAKE_P)
[15:15:01] =============== [PASSED] check_platform_desc ===============
[15:15:01] ===================== [PASSED] xe_pci ======================
[15:15:01] ============= xe_rtp_tables_test (5 subtests) ==============
[15:15:01] ================== xe_rtp_table_gt_test ===================
[15:15:01] [PASSED] gt_was/14011060649
[15:15:01] [PASSED] gt_was/14011059788
[15:15:01] [PASSED] gt_was/14015795083
[15:15:01] [PASSED] gt_was/16021867713
[15:15:01] [PASSED] gt_was/14019449301
[15:15:01] [PASSED] gt_was/16028005424
[15:15:01] [PASSED] gt_was/14026578760
[15:15:01] [PASSED] gt_was/1409420604
[15:15:01] [PASSED] gt_was/1408615072
[15:15:01] [PASSED] gt_was/22010523718
[15:15:01] [PASSED] gt_was/14011006942
[15:15:01] [PASSED] gt_was/14014830051
[15:15:01] [PASSED] gt_was/18018781329
[15:15:01] [PASSED] gt_was/1509235366
[15:15:01] [PASSED] gt_was/18018781329
[15:15:01] [PASSED] gt_was/16016694945
[15:15:01] [PASSED] gt_was/14018575942
[15:15:01] [PASSED] gt_was/22016670082
[15:15:01] [PASSED] gt_was/22016670082
[15:15:01] [PASSED] gt_was/14017421178
[15:15:01] [PASSED] gt_was/16025250150
[15:15:01] [PASSED] gt_was/14021871409
[15:15:01] [PASSED] gt_was/16021865536
[15:15:01] [PASSED] gt_was/14021486841
[15:15:01] [PASSED] gt_was/14025160223
[15:15:01] [PASSED] gt_was/14026144927, 16029437861, 14026127056
[15:15:01] [PASSED] gt_was/14025635424
[15:15:01] [PASSED] gt_was/16028005424
[15:15:01] ============== [PASSED] xe_rtp_table_gt_test ===============
[15:15:01] ================== xe_rtp_table_gt_test ===================
[15:15:01] [PASSED] gt_tunings/Tuning: Blend Fill Caching Optimization Disable
[15:15:01] [PASSED] gt_tunings/Tuning: 32B Access Enable
[15:15:01] [PASSED] gt_tunings/Tuning: L3 cache
[15:15:01] [PASSED] gt_tunings/Tuning: L3 cache - media
[15:15:01] [PASSED] gt_tunings/Tuning: Compression Overfetch
[15:15:01] [PASSED] gt_tunings/Tuning: Compression Overfetch - media
[15:15:01] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3
[15:15:01] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3 - media
[15:15:01] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only
[15:15:01] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only - media
[15:15:01] [PASSED] gt_tunings/Tuning: Stateless compression control
[15:15:01] [PASSED] gt_tunings/Tuning: Stateless compression control - media
[15:15:01] [PASSED] gt_tunings/Tuning: L3 RW flush all Cache
[15:15:01] [PASSED] gt_tunings/Tuning: L3 RW flush all cache - media
[15:15:01] [PASSED] gt_tunings/Tuning: Set STLB Bank Hash Mode to 4KB
[15:15:01] [PASSED] gt_tunings/Tuning: Force All Non-Compressible Memory Reads to be 256B Overfetches
[15:15:01] ============== [PASSED] xe_rtp_table_gt_test ===============
[15:15:01] ================== xe_rtp_table_oob_test ==================
[15:15:01] [PASSED] oob_was/1607983814
[15:15:01] [PASSED] oob_was/16010904313
[15:15:01] [PASSED] oob_was/18022495364
[15:15:01] [PASSED] oob_was/22012773006
[15:15:01] [PASSED] oob_was/14014475959
[15:15:01] [PASSED] oob_was/22011391025
[15:15:01] [PASSED] oob_was/22012727170
[15:15:01] [PASSED] oob_was/22012727685
[15:15:01] [PASSED] oob_was/22016596838
[15:15:01] [PASSED] oob_was/18020744125
[15:15:01] [PASSED] oob_was/1409600907
[15:15:01] [PASSED] oob_was/22014953428
[15:15:01] [PASSED] oob_was/16017236439
[15:15:01] [PASSED] oob_was/14019821291
[15:15:01] [PASSED] oob_was/14015076503
[15:15:01] [PASSED] oob_was/22016122933
[15:15:01] [PASSED] oob_was/14018913170
[15:15:01] [PASSED] oob_was/14018094691
[15:15:01] [PASSED] oob_was/18024947630
[15:15:01] [PASSED] oob_was/16022287689
[15:15:01] [PASSED] oob_was/13011645652
[15:15:01] [PASSED] oob_was/14022293748
[15:15:01] [PASSED] oob_was/22019794406
[15:15:01] [PASSED] oob_was/22019338487
[15:15:01] [PASSED] oob_was/16023588340
[15:15:01] [PASSED] oob_was/14019789679
[15:15:01] [PASSED] oob_was/14022866841
[15:15:01] [PASSED] oob_was/16021333562
[15:15:01] [PASSED] oob_was/14016712196
[15:15:01] [PASSED] oob_was/14015568240
[15:15:01] [PASSED] oob_was/18013179988
[15:15:01] [PASSED] oob_was/1508761755
[15:15:01] [PASSED] oob_was/16023105232
[15:15:01] [PASSED] oob_was/16026508708
[15:15:01] [PASSED] oob_was/14020001231
[15:15:01] [PASSED] oob_was/16023683509
[15:15:01] [PASSED] oob_was/14025515070
[15:15:01] [PASSED] oob_was/15015404425_disable
[15:15:01] [PASSED] oob_was/16026007364
[15:15:01] [PASSED] oob_was/14020316580
[15:15:01] [PASSED] oob_was/14025883347
[15:15:01] [PASSED] oob_was/16029380221
[15:15:01] [PASSED] oob_was/22022079272
[15:15:01] [PASSED] oob_was/16029897822
[15:15:01] [PASSED] oob_was/14026539277
[15:15:01] [PASSED] oob_was/14027054324
[15:15:01] [PASSED] oob_was/14025941587
[15:15:01] [PASSED] oob_was/16030224309
[15:15:01] ============== [PASSED] xe_rtp_table_oob_test ==============
[15:15:01] ================ xe_rtp_table_dev_oob_test ================
[15:15:01] [PASSED] device_oob_was/22010954014
[15:15:01] [PASSED] device_oob_was/15015404425
[15:15:01] [PASSED] device_oob_was/22019338487_display
[15:15:01] [PASSED] device_oob_was/14022085890
[15:15:01] [PASSED] device_oob_was/14026633728
[15:15:01] [PASSED] device_oob_was/14026746987
[15:15:01] [PASSED] device_oob_was/14026779378
[15:15:01] ============ [PASSED] xe_rtp_table_dev_oob_test ============
[15:15:01] ========== xe_rtp_table_missing_upper_bound_test ==========
[15:15:01] [PASSED] register_whitelist/WaAllowPMDepthAndInvocationCountAccessFromUMD, 1408556865
[15:15:01] [PASSED] register_whitelist/1508744258, 14012131227, 1808121037
[15:15:01] [PASSED] register_whitelist/1806527549
[15:15:01] [PASSED] register_whitelist/allow_read_ctx_timestamp
[15:15:01] [PASSED] register_whitelist/allow_read_queue_timestamp
[15:15:01] [PASSED] register_whitelist/16014440446
[15:15:01] [PASSED] register_whitelist/16017236439
[15:15:01] [PASSED] register_whitelist/16020183090
[15:15:01] [PASSED] register_whitelist/14024997852
[15:15:01] [PASSED] register_whitelist/14024997852
[15:15:01] ====== [PASSED] xe_rtp_table_missing_upper_bound_test ======
[15:15:01] =============== [PASSED] xe_rtp_tables_test ================
[15:15:01] =================== xe_rtp (3 subtests) ====================
[15:15:01] =================== xe_rtp_rules_tests ====================
[15:15:01] [PASSED] no
[15:15:01] [PASSED] yes
[15:15:01] [PASSED] no-and-no
[15:15:01] [PASSED] no-and-yes
[15:15:01] [PASSED] yes-and-no
[15:15:01] [PASSED] yes-and-yes
[15:15:01] [PASSED] no-or-no
[15:15:01] [PASSED] no-or-yes
[15:15:01] [PASSED] yes-or-no
[15:15:01] [PASSED] yes-or-yes
[15:15:01] [PASSED] no-yes-or-yes-no
[15:15:01] [PASSED] no-yes-or-yes-yes
[15:15:01] [PASSED] yes-yes-or-no-yes
[15:15:01] [PASSED] yes-yes-or-yes-yes
[15:15:01] [PASSED] no-no-or-yes-or-no
[15:15:01] [PASSED] or
[15:15:01] [PASSED] or-yes
[15:15:01] [PASSED] or-no
[15:15:01] [PASSED] yes-or
[15:15:01] [PASSED] no-or
[15:15:01] [PASSED] no-or-or-yes
[15:15:01] [PASSED] yes-or-or-no
[15:15:01] [PASSED] no-or-or-no
[15:15:01] [PASSED] missing-context-engine-class
[15:15:01] [PASSED] missing-context-engine-class-or-yes
[15:15:01] [PASSED] missing-context-engine-class-or-or-yes
[15:15:01] =============== [PASSED] xe_rtp_rules_tests ================
[15:15:01] =============== xe_rtp_process_to_sr_tests ================
[15:15:01] [PASSED] coalesce-same-reg
[15:15:01] [PASSED] coalesce-same-reg-literal-and-func
[15:15:01] [PASSED] no-match-no-add
[15:15:01] [PASSED] two-regs-two-entries
[15:15:01] [PASSED] clr-one-set-other
[15:15:01] [PASSED] set-field
[15:15:01] [PASSED] conflict-duplicate
[15:15:01] [PASSED] conflict-not-disjoint
[15:15:01] [PASSED] conflict-not-disjoint-literal-and-func
[15:15:01] [PASSED] conflict-reg-type
[15:15:01] [PASSED] bad-mcr-reg-forced-to-regular
[15:15:01] [PASSED] bad-regular-reg-forced-to-mcr
[15:15:01] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[15:15:01] ================== xe_rtp_process_tests ===================
[15:15:01] [PASSED] active1
[15:15:01] [PASSED] active2
[15:15:01] [PASSED] active-inactive
[15:15:01] [PASSED] inactive-active
[15:15:01] [PASSED] inactive-active-inactive
[15:15:01] [PASSED] inactive-inactive-inactive
[15:15:01] ============== [PASSED] xe_rtp_process_tests ===============
[15:15:01] ===================== [PASSED] xe_rtp ======================
[15:15:01] ==================== xe_wa (1 subtest) =====================
[15:15:01] ======================== xe_wa_gt =========================
[15:15:01] [PASSED] TIGERLAKE B0
[15:15:01] [PASSED] DG1 A0
[15:15:01] [PASSED] DG1 B0
[15:15:01] [PASSED] ALDERLAKE_S A0
[15:15:01] [PASSED] ALDERLAKE_S B0
[15:15:01] [PASSED] ALDERLAKE_S C0
[15:15:01] [PASSED] ALDERLAKE_S D0
[15:15:01] [PASSED] ALDERLAKE_P A0
[15:15:01] [PASSED] ALDERLAKE_P B0
[15:15:01] [PASSED] ALDERLAKE_P C0
[15:15:01] [PASSED] ALDERLAKE_S RPLS D0
[15:15:01] [PASSED] ALDERLAKE_P RPLU E0
[15:15:01] [PASSED] DG2 G10 C0
[15:15:01] [PASSED] DG2 G11 B1
[15:15:01] [PASSED] DG2 G12 A1
[15:15:01] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[15:15:01] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[15:15:01] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[15:15:01] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[15:15:01] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[15:15:01] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[15:15:01] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[15:15:01] ==================== [PASSED] xe_wa_gt =====================
[15:15:01] ====================== [PASSED] xe_wa ======================
[15:15:01] ============================================================
[15:15:01] Testing complete. Ran 839 tests: passed: 810, skipped: 29
[15:15:01] Elapsed time: 40.256s total, 1.817s configuring, 37.673s building, 0.726s 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
[15:15:01] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[15:15:03] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[15:15:28] Starting KUnit Kernel (1/1)...
[15:15:28] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[15:15:28] ============ drm_test_pick_cmdline (2 subtests) ============
[15:15:28] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[15:15:28] =============== drm_test_pick_cmdline_named ===============
[15:15:28] [PASSED] NTSC
[15:15:28] [PASSED] NTSC-J
[15:15:28] [PASSED] PAL
[15:15:28] [PASSED] PAL-M
[15:15:28] =========== [PASSED] drm_test_pick_cmdline_named ===========
[15:15:28] ============== [PASSED] drm_test_pick_cmdline ==============
[15:15:28] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[15:15:28] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[15:15:28] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[15:15:28] =========== drm_validate_clone_mode (2 subtests) ===========
[15:15:28] ============== drm_test_check_in_clone_mode ===============
[15:15:28] [PASSED] in_clone_mode
[15:15:28] [PASSED] not_in_clone_mode
[15:15:28] ========== [PASSED] drm_test_check_in_clone_mode ===========
[15:15:28] =============== drm_test_check_valid_clones ===============
[15:15:28] [PASSED] not_in_clone_mode
[15:15:28] [PASSED] valid_clone
[15:15:28] [PASSED] invalid_clone
[15:15:28] =========== [PASSED] drm_test_check_valid_clones ===========
[15:15:28] ============= [PASSED] drm_validate_clone_mode =============
[15:15:28] ============= drm_validate_modeset (1 subtest) =============
[15:15:28] [PASSED] drm_test_check_connector_changed_modeset
[15:15:28] ============== [PASSED] drm_validate_modeset ===============
[15:15:28] ====== drm_test_bridge_get_current_state (1 subtest) =======
[15:15:28] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[15:15:28] ======== [PASSED] drm_test_bridge_get_current_state ========
[15:15:28] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[15:15:28] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[15:15:28] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[15:15:28] [PASSED] drm_test_drm_bridge_helper_hdmi_output_bus_fmts
[15:15:28] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[15:15:28] ============== drm_bridge_alloc (2 subtests) ===============
[15:15:28] [PASSED] drm_test_drm_bridge_alloc_basic
[15:15:28] [PASSED] drm_test_drm_bridge_alloc_get_put
[15:15:28] ================ [PASSED] drm_bridge_alloc =================
[15:15:28] ============= drm_bridge_bus_fmt (5 subtests) ==============
[15:15:28] [PASSED] drm_test_bridge_rgb_yuv_rgb
[15:15:28] [PASSED] drm_test_bridge_must_convert_to_yuv444
[15:15:28] [PASSED] drm_test_bridge_hdmi_auto_rgb
[15:15:28] [PASSED] drm_test_bridge_auto_first
[15:15:28] [PASSED] drm_test_bridge_rgb_yuv_no_path
[15:15:28] =============== [PASSED] drm_bridge_bus_fmt ================
[15:15:28] ============= drm_cmdline_parser (40 subtests) =============
[15:15:28] [PASSED] drm_test_cmdline_force_d_only
[15:15:28] [PASSED] drm_test_cmdline_force_D_only_dvi
[15:15:28] [PASSED] drm_test_cmdline_force_D_only_hdmi
[15:15:28] [PASSED] drm_test_cmdline_force_D_only_not_digital
[15:15:28] [PASSED] drm_test_cmdline_force_e_only
[15:15:28] [PASSED] drm_test_cmdline_res
[15:15:28] [PASSED] drm_test_cmdline_res_vesa
[15:15:28] [PASSED] drm_test_cmdline_res_vesa_rblank
[15:15:28] [PASSED] drm_test_cmdline_res_rblank
[15:15:28] [PASSED] drm_test_cmdline_res_bpp
[15:15:28] [PASSED] drm_test_cmdline_res_refresh
[15:15:28] [PASSED] drm_test_cmdline_res_bpp_refresh
[15:15:28] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[15:15:28] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[15:15:28] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[15:15:28] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[15:15:28] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[15:15:28] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[15:15:28] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[15:15:28] [PASSED] drm_test_cmdline_res_margins_force_on
[15:15:28] [PASSED] drm_test_cmdline_res_vesa_margins
[15:15:28] [PASSED] drm_test_cmdline_name
[15:15:28] [PASSED] drm_test_cmdline_name_bpp
[15:15:28] [PASSED] drm_test_cmdline_name_option
[15:15:28] [PASSED] drm_test_cmdline_name_bpp_option
[15:15:28] [PASSED] drm_test_cmdline_rotate_0
[15:15:28] [PASSED] drm_test_cmdline_rotate_90
[15:15:28] [PASSED] drm_test_cmdline_rotate_180
[15:15:28] [PASSED] drm_test_cmdline_rotate_270
[15:15:28] [PASSED] drm_test_cmdline_hmirror
[15:15:28] [PASSED] drm_test_cmdline_vmirror
[15:15:28] [PASSED] drm_test_cmdline_margin_options
[15:15:28] [PASSED] drm_test_cmdline_multiple_options
[15:15:28] [PASSED] drm_test_cmdline_bpp_extra_and_option
[15:15:28] [PASSED] drm_test_cmdline_extra_and_option
[15:15:28] [PASSED] drm_test_cmdline_freestanding_options
[15:15:28] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[15:15:28] [PASSED] drm_test_cmdline_panel_orientation
[15:15:28] ================ drm_test_cmdline_invalid =================
[15:15:28] [PASSED] margin_only
[15:15:28] [PASSED] interlace_only
[15:15:28] [PASSED] res_missing_x
[15:15:28] [PASSED] res_missing_y
[15:15:28] [PASSED] res_bad_y
[15:15:28] [PASSED] res_missing_y_bpp
[15:15:28] [PASSED] res_bad_bpp
[15:15:28] [PASSED] res_bad_refresh
[15:15:28] [PASSED] res_bpp_refresh_force_on_off
[15:15:28] [PASSED] res_invalid_mode
[15:15:28] [PASSED] res_bpp_wrong_place_mode
[15:15:28] [PASSED] name_bpp_refresh
[15:15:28] [PASSED] name_refresh
[15:15:28] [PASSED] name_refresh_wrong_mode
[15:15:28] [PASSED] name_refresh_invalid_mode
[15:15:28] [PASSED] rotate_multiple
[15:15:28] [PASSED] rotate_invalid_val
[15:15:28] [PASSED] rotate_truncated
[15:15:28] [PASSED] invalid_option
[15:15:28] [PASSED] invalid_tv_option
[15:15:28] [PASSED] truncated_tv_option
[15:15:28] ============ [PASSED] drm_test_cmdline_invalid =============
[15:15:28] =============== drm_test_cmdline_tv_options ===============
[15:15:28] [PASSED] NTSC
[15:15:28] [PASSED] NTSC_443
[15:15:28] [PASSED] NTSC_J
[15:15:28] [PASSED] PAL
[15:15:28] [PASSED] PAL_M
[15:15:28] [PASSED] PAL_N
[15:15:28] [PASSED] SECAM
[15:15:28] [PASSED] MONO_525
[15:15:28] [PASSED] MONO_625
[15:15:28] =========== [PASSED] drm_test_cmdline_tv_options ===========
[15:15:28] =============== [PASSED] drm_cmdline_parser ================
[15:15:28] ========== drmm_connector_hdmi_init (20 subtests) ==========
[15:15:28] [PASSED] drm_test_connector_hdmi_init_valid
[15:15:28] [PASSED] drm_test_connector_hdmi_init_bpc_8
[15:15:28] [PASSED] drm_test_connector_hdmi_init_bpc_10
[15:15:28] [PASSED] drm_test_connector_hdmi_init_bpc_12
[15:15:28] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[15:15:28] [PASSED] drm_test_connector_hdmi_init_bpc_null
[15:15:28] [PASSED] drm_test_connector_hdmi_init_formats_empty
[15:15:28] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[15:15:28] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[15:15:28] [PASSED] supported_formats=0x9 yuv420_allowed=1
[15:15:28] [PASSED] supported_formats=0x9 yuv420_allowed=0
[15:15:28] [PASSED] supported_formats=0x5 yuv420_allowed=1
[15:15:28] [PASSED] supported_formats=0x5 yuv420_allowed=0
[15:15:28] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[15:15:28] [PASSED] drm_test_connector_hdmi_init_null_ddc
[15:15:28] [PASSED] drm_test_connector_hdmi_init_null_product
[15:15:28] [PASSED] drm_test_connector_hdmi_init_null_vendor
[15:15:28] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[15:15:28] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[15:15:28] [PASSED] drm_test_connector_hdmi_init_product_valid
[15:15:28] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[15:15:28] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[15:15:28] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[15:15:28] ========= drm_test_connector_hdmi_init_type_valid =========
[15:15:28] [PASSED] HDMI-A
[15:15:28] [PASSED] HDMI-B
[15:15:28] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[15:15:28] ======== drm_test_connector_hdmi_init_type_invalid ========
[15:15:28] [PASSED] Unknown
[15:15:28] [PASSED] VGA
[15:15:28] [PASSED] DVI-I
[15:15:28] [PASSED] DVI-D
[15:15:28] [PASSED] DVI-A
[15:15:28] [PASSED] Composite
[15:15:28] [PASSED] SVIDEO
[15:15:28] [PASSED] LVDS
[15:15:28] [PASSED] Component
[15:15:28] [PASSED] DIN
[15:15:28] [PASSED] DP
[15:15:28] [PASSED] TV
[15:15:28] [PASSED] eDP
[15:15:28] [PASSED] Virtual
[15:15:28] [PASSED] DSI
[15:15:28] [PASSED] DPI
[15:15:28] [PASSED] Writeback
[15:15:28] [PASSED] SPI
[15:15:28] [PASSED] USB
[15:15:28] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[15:15:28] ============ [PASSED] drmm_connector_hdmi_init =============
[15:15:28] ============= drmm_connector_init (3 subtests) =============
[15:15:28] [PASSED] drm_test_drmm_connector_init
[15:15:28] [PASSED] drm_test_drmm_connector_init_null_ddc
[15:15:28] ========= drm_test_drmm_connector_init_type_valid =========
[15:15:28] [PASSED] Unknown
[15:15:28] [PASSED] VGA
[15:15:28] [PASSED] DVI-I
[15:15:28] [PASSED] DVI-D
[15:15:28] [PASSED] DVI-A
[15:15:28] [PASSED] Composite
[15:15:28] [PASSED] SVIDEO
[15:15:28] [PASSED] LVDS
[15:15:28] [PASSED] Component
[15:15:28] [PASSED] DIN
[15:15:28] [PASSED] DP
[15:15:28] [PASSED] HDMI-A
[15:15:28] [PASSED] HDMI-B
[15:15:28] [PASSED] TV
[15:15:28] [PASSED] eDP
[15:15:28] [PASSED] Virtual
[15:15:28] [PASSED] DSI
[15:15:28] [PASSED] DPI
[15:15:28] [PASSED] Writeback
[15:15:28] [PASSED] SPI
[15:15:28] [PASSED] USB
[15:15:28] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[15:15:28] =============== [PASSED] drmm_connector_init ===============
[15:15:28] ========= drm_connector_dynamic_init (6 subtests) ==========
[15:15:28] [PASSED] drm_test_drm_connector_dynamic_init
[15:15:28] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[15:15:28] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[15:15:28] [PASSED] drm_test_drm_connector_dynamic_init_properties
[15:15:28] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[15:15:28] [PASSED] Unknown
[15:15:28] [PASSED] VGA
[15:15:28] [PASSED] DVI-I
[15:15:28] [PASSED] DVI-D
[15:15:28] [PASSED] DVI-A
[15:15:28] [PASSED] Composite
[15:15:28] [PASSED] SVIDEO
[15:15:28] [PASSED] LVDS
[15:15:28] [PASSED] Component
[15:15:28] [PASSED] DIN
[15:15:28] [PASSED] DP
[15:15:28] [PASSED] HDMI-A
[15:15:28] [PASSED] HDMI-B
[15:15:28] [PASSED] TV
[15:15:28] [PASSED] eDP
[15:15:28] [PASSED] Virtual
[15:15:28] [PASSED] DSI
[15:15:28] [PASSED] DPI
[15:15:28] [PASSED] Writeback
[15:15:28] [PASSED] SPI
[15:15:28] [PASSED] USB
[15:15:28] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[15:15:28] ======== drm_test_drm_connector_dynamic_init_name =========
[15:15:28] [PASSED] Unknown
[15:15:28] [PASSED] VGA
[15:15:28] [PASSED] DVI-I
[15:15:28] [PASSED] DVI-D
[15:15:28] [PASSED] DVI-A
[15:15:28] [PASSED] Composite
[15:15:28] [PASSED] SVIDEO
[15:15:28] [PASSED] LVDS
[15:15:28] [PASSED] Component
[15:15:28] [PASSED] DIN
[15:15:28] [PASSED] DP
[15:15:28] [PASSED] HDMI-A
[15:15:28] [PASSED] HDMI-B
[15:15:28] [PASSED] TV
[15:15:28] [PASSED] eDP
[15:15:28] [PASSED] Virtual
[15:15:28] [PASSED] DSI
[15:15:28] [PASSED] DPI
[15:15:28] [PASSED] Writeback
[15:15:28] [PASSED] SPI
[15:15:28] [PASSED] USB
[15:15:28] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[15:15:28] =========== [PASSED] drm_connector_dynamic_init ============
[15:15:28] ==== drm_connector_dynamic_register_early (4 subtests) =====
[15:15:28] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[15:15:28] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[15:15:28] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[15:15:28] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[15:15:28] ====== [PASSED] drm_connector_dynamic_register_early =======
[15:15:28] ======= drm_connector_dynamic_register (7 subtests) ========
[15:15:28] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[15:15:28] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[15:15:28] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[15:15:28] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[15:15:28] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[15:15:28] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[15:15:28] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[15:15:28] ========= [PASSED] drm_connector_dynamic_register ==========
[15:15:28] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[15:15:28] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[15:15:28] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[15:15:28] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[15:15:28] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[15:15:28] ========== drm_test_get_tv_mode_from_name_valid ===========
[15:15:28] [PASSED] NTSC
[15:15:28] [PASSED] NTSC-443
[15:15:28] [PASSED] NTSC-J
[15:15:28] [PASSED] PAL
[15:15:28] [PASSED] PAL-M
[15:15:28] [PASSED] PAL-N
[15:15:28] [PASSED] SECAM
[15:15:28] [PASSED] Mono
[15:15:28] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[15:15:28] [PASSED] drm_test_get_tv_mode_from_name_truncated
[15:15:28] ============ [PASSED] drm_get_tv_mode_from_name ============
[15:15:28] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[15:15:28] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[15:15:28] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[15:15:28] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[15:15:28] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[15:15:28] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[15:15:28] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[15:15:28] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[15:15:28] [PASSED] VIC 96
[15:15:28] [PASSED] VIC 97
[15:15:28] [PASSED] VIC 101
[15:15:28] [PASSED] VIC 102
[15:15:28] [PASSED] VIC 106
[15:15:28] [PASSED] VIC 107
[15:15:28] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[15:15:28] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[15:15:28] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[15:15:28] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[15:15:28] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[15:15:28] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[15:15:28] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[15:15:28] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[15:15:28] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[15:15:28] [PASSED] Automatic
[15:15:28] [PASSED] Full
[15:15:28] [PASSED] Limited 16:235
[15:15:28] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[15:15:28] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[15:15:28] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[15:15:28] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[15:15:28] === drm_test_drm_hdmi_connector_get_output_format_name ====
[15:15:28] [PASSED] RGB
[15:15:28] [PASSED] YUV 4:2:0
[15:15:28] [PASSED] YUV 4:2:2
[15:15:28] [PASSED] YUV 4:4:4
[15:15:28] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[15:15:28] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[15:15:28] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[15:15:28] ============= drm_damage_helper (21 subtests) ==============
[15:15:28] [PASSED] drm_test_damage_iter_no_damage
[15:15:28] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[15:15:28] [PASSED] drm_test_damage_iter_no_damage_src_moved
[15:15:28] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[15:15:28] [PASSED] drm_test_damage_iter_no_damage_not_visible
[15:15:28] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[15:15:28] [PASSED] drm_test_damage_iter_no_damage_no_fb
[15:15:28] [PASSED] drm_test_damage_iter_simple_damage
[15:15:28] [PASSED] drm_test_damage_iter_single_damage
[15:15:28] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[15:15:28] [PASSED] drm_test_damage_iter_single_damage_outside_src
[15:15:28] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[15:15:28] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[15:15:28] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[15:15:28] [PASSED] drm_test_damage_iter_single_damage_src_moved
[15:15:28] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[15:15:28] [PASSED] drm_test_damage_iter_damage
[15:15:28] [PASSED] drm_test_damage_iter_damage_one_intersect
[15:15:28] [PASSED] drm_test_damage_iter_damage_one_outside
[15:15:28] [PASSED] drm_test_damage_iter_damage_src_moved
[15:15:28] [PASSED] drm_test_damage_iter_damage_not_visible
[15:15:28] ================ [PASSED] drm_damage_helper ================
[15:15:28] ============== drm_dp_mst_helper (3 subtests) ==============
[15:15:28] ============== drm_test_dp_mst_calc_pbn_mode ==============
[15:15:28] [PASSED] Clock 154000 BPP 30 DSC disabled
[15:15:28] [PASSED] Clock 234000 BPP 30 DSC disabled
[15:15:28] [PASSED] Clock 297000 BPP 24 DSC disabled
[15:15:28] [PASSED] Clock 332880 BPP 24 DSC enabled
[15:15:28] [PASSED] Clock 324540 BPP 24 DSC enabled
[15:15:28] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[15:15:28] ============== drm_test_dp_mst_calc_pbn_div ===============
[15:15:28] [PASSED] Link rate 2000000 lane count 4
[15:15:28] [PASSED] Link rate 2000000 lane count 2
[15:15:28] [PASSED] Link rate 2000000 lane count 1
[15:15:28] [PASSED] Link rate 1350000 lane count 4
[15:15:28] [PASSED] Link rate 1350000 lane count 2
[15:15:28] [PASSED] Link rate 1350000 lane count 1
[15:15:28] [PASSED] Link rate 1000000 lane count 4
[15:15:28] [PASSED] Link rate 1000000 lane count 2
[15:15:28] [PASSED] Link rate 1000000 lane count 1
[15:15:28] [PASSED] Link rate 810000 lane count 4
[15:15:28] [PASSED] Link rate 810000 lane count 2
[15:15:28] [PASSED] Link rate 810000 lane count 1
[15:15:28] [PASSED] Link rate 540000 lane count 4
[15:15:28] [PASSED] Link rate 540000 lane count 2
[15:15:28] [PASSED] Link rate 540000 lane count 1
[15:15:28] [PASSED] Link rate 270000 lane count 4
[15:15:28] [PASSED] Link rate 270000 lane count 2
[15:15:28] [PASSED] Link rate 270000 lane count 1
[15:15:28] [PASSED] Link rate 162000 lane count 4
[15:15:28] [PASSED] Link rate 162000 lane count 2
[15:15:28] [PASSED] Link rate 162000 lane count 1
[15:15:28] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[15:15:28] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[15:15:28] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[15:15:28] [PASSED] DP_POWER_UP_PHY with port number
[15:15:28] [PASSED] DP_POWER_DOWN_PHY with port number
[15:15:28] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[15:15:28] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[15:15:28] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[15:15:28] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[15:15:28] [PASSED] DP_QUERY_PAYLOAD with port number
[15:15:28] [PASSED] DP_QUERY_PAYLOAD with VCPI
[15:15:28] [PASSED] DP_REMOTE_DPCD_READ with port number
[15:15:28] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[15:15:28] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[15:15:28] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[15:15:28] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[15:15:28] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[15:15:28] [PASSED] DP_REMOTE_I2C_READ with port number
[15:15:28] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[15:15:28] [PASSED] DP_REMOTE_I2C_READ with transactions array
[15:15:28] [PASSED] DP_REMOTE_I2C_WRITE with port number
[15:15:28] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[15:15:28] [PASSED] DP_REMOTE_I2C_WRITE with data array
[15:15:28] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[15:15:28] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[15:15:28] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[15:15:28] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[15:15:28] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[15:15:28] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[15:15:28] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[15:15:28] ================ [PASSED] drm_dp_mst_helper ================
[15:15:28] ================== drm_exec (7 subtests) ===================
[15:15:28] [PASSED] sanitycheck
[15:15:28] [PASSED] test_lock
[15:15:28] [PASSED] test_lock_unlock
[15:15:28] [PASSED] test_duplicates
[15:15:28] [PASSED] test_prepare
[15:15:28] [PASSED] test_prepare_array
[15:15:28] [PASSED] test_multiple_loops
[15:15:28] ==================== [PASSED] drm_exec =====================
[15:15:28] =========== drm_format_helper_test (17 subtests) ===========
[15:15:28] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[15:15:28] [PASSED] single_pixel_source_buffer
[15:15:28] [PASSED] single_pixel_clip_rectangle
[15:15:28] [PASSED] well_known_colors
[15:15:28] [PASSED] destination_pitch
[15:15:28] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[15:15:28] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[15:15:28] [PASSED] single_pixel_source_buffer
[15:15:28] [PASSED] single_pixel_clip_rectangle
[15:15:28] [PASSED] well_known_colors
[15:15:28] [PASSED] destination_pitch
[15:15:28] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[15:15:28] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[15:15:28] [PASSED] single_pixel_source_buffer
[15:15:28] [PASSED] single_pixel_clip_rectangle
[15:15:28] [PASSED] well_known_colors
[15:15:28] [PASSED] destination_pitch
[15:15:28] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[15:15:28] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[15:15:28] [PASSED] single_pixel_source_buffer
[15:15:28] [PASSED] single_pixel_clip_rectangle
[15:15:28] [PASSED] well_known_colors
[15:15:28] [PASSED] destination_pitch
[15:15:28] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[15:15:28] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[15:15:28] [PASSED] single_pixel_source_buffer
[15:15:28] [PASSED] single_pixel_clip_rectangle
[15:15:28] [PASSED] well_known_colors
[15:15:28] [PASSED] destination_pitch
[15:15:28] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[15:15:28] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[15:15:28] [PASSED] single_pixel_source_buffer
[15:15:28] [PASSED] single_pixel_clip_rectangle
[15:15:28] [PASSED] well_known_colors
[15:15:28] [PASSED] destination_pitch
[15:15:28] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[15:15:28] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[15:15:28] [PASSED] single_pixel_source_buffer
[15:15:28] [PASSED] single_pixel_clip_rectangle
[15:15:28] [PASSED] well_known_colors
[15:15:28] [PASSED] destination_pitch
[15:15:28] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[15:15:28] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[15:15:28] [PASSED] single_pixel_source_buffer
[15:15:28] [PASSED] single_pixel_clip_rectangle
[15:15:28] [PASSED] well_known_colors
[15:15:28] [PASSED] destination_pitch
[15:15:28] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[15:15:28] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[15:15:28] [PASSED] single_pixel_source_buffer
[15:15:28] [PASSED] single_pixel_clip_rectangle
[15:15:28] [PASSED] well_known_colors
[15:15:28] [PASSED] destination_pitch
[15:15:28] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[15:15:28] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[15:15:28] [PASSED] single_pixel_source_buffer
[15:15:28] [PASSED] single_pixel_clip_rectangle
[15:15:28] [PASSED] well_known_colors
[15:15:28] [PASSED] destination_pitch
[15:15:28] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[15:15:28] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[15:15:28] [PASSED] single_pixel_source_buffer
[15:15:28] [PASSED] single_pixel_clip_rectangle
[15:15:28] [PASSED] well_known_colors
[15:15:28] [PASSED] destination_pitch
[15:15:28] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[15:15:28] ============== drm_test_fb_xrgb8888_to_mono ===============
[15:15:28] [PASSED] single_pixel_source_buffer
[15:15:28] [PASSED] single_pixel_clip_rectangle
[15:15:28] [PASSED] well_known_colors
[15:15:28] [PASSED] destination_pitch
[15:15:28] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[15:15:28] ==================== drm_test_fb_swab =====================
[15:15:28] [PASSED] single_pixel_source_buffer
[15:15:28] [PASSED] single_pixel_clip_rectangle
[15:15:28] [PASSED] well_known_colors
[15:15:28] [PASSED] destination_pitch
[15:15:28] ================ [PASSED] drm_test_fb_swab =================
[15:15:28] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[15:15:28] [PASSED] single_pixel_source_buffer
[15:15:28] [PASSED] single_pixel_clip_rectangle
[15:15:28] [PASSED] well_known_colors
[15:15:28] [PASSED] destination_pitch
[15:15:28] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[15:15:28] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[15:15:28] [PASSED] single_pixel_source_buffer
[15:15:28] [PASSED] single_pixel_clip_rectangle
[15:15:28] [PASSED] well_known_colors
[15:15:28] [PASSED] destination_pitch
[15:15:28] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[15:15:28] ================= drm_test_fb_clip_offset =================
[15:15:28] [PASSED] pass through
[15:15:28] [PASSED] horizontal offset
[15:15:28] [PASSED] vertical offset
[15:15:28] [PASSED] horizontal and vertical offset
[15:15:28] [PASSED] horizontal offset (custom pitch)
[15:15:28] [PASSED] vertical offset (custom pitch)
[15:15:28] [PASSED] horizontal and vertical offset (custom pitch)
[15:15:28] ============= [PASSED] drm_test_fb_clip_offset =============
[15:15:28] =================== drm_test_fb_memcpy ====================
[15:15:28] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[15:15:28] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[15:15:28] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[15:15:28] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[15:15:28] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[15:15:28] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[15:15:28] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[15:15:28] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[15:15:28] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[15:15:28] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[15:15:28] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[15:15:28] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[15:15:28] =============== [PASSED] drm_test_fb_memcpy ================
[15:15:28] ============= [PASSED] drm_format_helper_test ==============
[15:15:28] ================= drm_format (18 subtests) =================
[15:15:28] [PASSED] drm_test_format_block_width_invalid
[15:15:28] [PASSED] drm_test_format_block_width_one_plane
[15:15:28] [PASSED] drm_test_format_block_width_two_plane
[15:15:28] [PASSED] drm_test_format_block_width_three_plane
[15:15:28] [PASSED] drm_test_format_block_width_tiled
[15:15:28] [PASSED] drm_test_format_block_height_invalid
[15:15:28] [PASSED] drm_test_format_block_height_one_plane
[15:15:28] [PASSED] drm_test_format_block_height_two_plane
[15:15:28] [PASSED] drm_test_format_block_height_three_plane
[15:15:28] [PASSED] drm_test_format_block_height_tiled
[15:15:28] [PASSED] drm_test_format_min_pitch_invalid
[15:15:28] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[15:15:28] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[15:15:28] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[15:15:28] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[15:15:28] [PASSED] drm_test_format_min_pitch_two_plane
[15:15:28] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[15:15:28] [PASSED] drm_test_format_min_pitch_tiled
[15:15:28] =================== [PASSED] drm_format ====================
[15:15:28] ============== drm_framebuffer (10 subtests) ===============
[15:15:28] ========== drm_test_framebuffer_check_src_coords ==========
[15:15:28] [PASSED] Success: source fits into fb
[15:15:28] [PASSED] Fail: overflowing fb with x-axis coordinate
[15:15:28] [PASSED] Fail: overflowing fb with y-axis coordinate
[15:15:28] [PASSED] Fail: overflowing fb with source width
[15:15:28] [PASSED] Fail: overflowing fb with source height
[15:15:28] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[15:15:28] [PASSED] drm_test_framebuffer_cleanup
[15:15:28] =============== drm_test_framebuffer_create ===============
[15:15:28] [PASSED] ABGR8888 normal sizes
[15:15:28] [PASSED] ABGR8888 max sizes
[15:15:28] [PASSED] ABGR8888 pitch greater than min required
[15:15:28] [PASSED] ABGR8888 pitch less than min required
[15:15:28] [PASSED] ABGR8888 Invalid width
[15:15:28] [PASSED] ABGR8888 Invalid buffer handle
[15:15:28] [PASSED] No pixel format
[15:15:28] [PASSED] ABGR8888 Width 0
[15:15:28] [PASSED] ABGR8888 Height 0
[15:15:28] [PASSED] ABGR8888 Out of bound height * pitch combination
[15:15:28] [PASSED] ABGR8888 Large buffer offset
[15:15:28] [PASSED] ABGR8888 Buffer offset for inexistent plane
[15:15:28] [PASSED] ABGR8888 Invalid flag
[15:15:28] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[15:15:28] [PASSED] ABGR8888 Valid buffer modifier
[15:15:28] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[15:15:28] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[15:15:28] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[15:15:28] [PASSED] NV12 Normal sizes
[15:15:28] [PASSED] NV12 Max sizes
[15:15:28] [PASSED] NV12 Invalid pitch
[15:15:28] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[15:15:28] [PASSED] NV12 different modifier per-plane
[15:15:28] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[15:15:28] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[15:15:28] [PASSED] NV12 Modifier for inexistent plane
[15:15:28] [PASSED] NV12 Handle for inexistent plane
[15:15:28] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[15:15:28] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[15:15:28] [PASSED] YVU420 Normal sizes
[15:15:28] [PASSED] YVU420 Max sizes
[15:15:28] [PASSED] YVU420 Invalid pitch
[15:15:28] [PASSED] YVU420 Different pitches
[15:15:28] [PASSED] YVU420 Different buffer offsets/pitches
[15:15:28] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[15:15:28] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[15:15:28] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[15:15:28] [PASSED] YVU420 Valid modifier
[15:15:28] [PASSED] YVU420 Different modifiers per plane
[15:15:28] [PASSED] YVU420 Modifier for inexistent plane
[15:15:28] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[15:15:28] [PASSED] X0L2 Normal sizes
[15:15:28] [PASSED] X0L2 Max sizes
[15:15:28] [PASSED] X0L2 Invalid pitch
[15:15:28] [PASSED] X0L2 Pitch greater than minimum required
[15:15:28] [PASSED] X0L2 Handle for inexistent plane
[15:15:28] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[15:15:28] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[15:15:28] [PASSED] X0L2 Valid modifier
[15:15:28] [PASSED] X0L2 Modifier for inexistent plane
[15:15:28] =========== [PASSED] drm_test_framebuffer_create ===========
[15:15:28] [PASSED] drm_test_framebuffer_free
[15:15:28] [PASSED] drm_test_framebuffer_init
[15:15:28] [PASSED] drm_test_framebuffer_init_bad_format
[15:15:28] [PASSED] drm_test_framebuffer_init_dev_mismatch
[15:15:28] [PASSED] drm_test_framebuffer_lookup
[15:15:28] [PASSED] drm_test_framebuffer_lookup_inexistent
[15:15:28] [PASSED] drm_test_framebuffer_modifiers_not_supported
[15:15:28] ================= [PASSED] drm_framebuffer =================
[15:15:28] ================ drm_gem_shmem (8 subtests) ================
[15:15:28] [PASSED] drm_gem_shmem_test_obj_create
[15:15:28] [PASSED] drm_gem_shmem_test_obj_create_private
[15:15:28] [PASSED] drm_gem_shmem_test_pin_pages
[15:15:28] [PASSED] drm_gem_shmem_test_vmap
[15:15:28] [PASSED] drm_gem_shmem_test_get_sg_table
[15:15:28] [PASSED] drm_gem_shmem_test_get_pages_sgt
[15:15:28] [PASSED] drm_gem_shmem_test_madvise
[15:15:28] [PASSED] drm_gem_shmem_test_purge
[15:15:28] ================== [PASSED] drm_gem_shmem ==================
[15:15:28] === drm_atomic_helper_connector_hdmi_check (29 subtests) ===
[15:15:28] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[15:15:28] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[15:15:28] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[15:15:28] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[15:15:28] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[15:15:28] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[15:15:28] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[15:15:28] [PASSED] Automatic
[15:15:28] [PASSED] Full
[15:15:28] [PASSED] Limited 16:235
[15:15:28] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[15:15:28] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[15:15:28] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[15:15:28] [PASSED] drm_test_check_disable_connector
[15:15:28] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[15:15:28] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[15:15:28] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[15:15:28] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[15:15:28] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[15:15:28] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[15:15:28] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[15:15:28] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[15:15:28] [PASSED] drm_test_check_output_bpc_dvi
[15:15:28] [PASSED] drm_test_check_output_bpc_format_vic_1
[15:15:28] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[15:15:28] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[15:15:28] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[15:15:28] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[15:15:28] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[15:15:28] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[15:15:28] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[15:15:28] ============ drm_test_check_hdmi_color_format =============
[15:15:28] [PASSED] AUTO -> RGB
[15:15:28] [PASSED] YCBCR422 -> YUV422
[15:15:28] [PASSED] YCBCR420 -> YUV420
[15:15:28] [PASSED] YCBCR444 -> YUV444
[15:15:28] [PASSED] RGB -> RGB
[15:15:28] ======== [PASSED] drm_test_check_hdmi_color_format =========
[15:15:28] ======== drm_test_check_hdmi_color_format_420_only ========
[15:15:28] [PASSED] RGB should fail
[15:15:28] [PASSED] YUV444 should fail
[15:15:28] [PASSED] YUV422 should fail
[15:15:28] [PASSED] YUV420 should work
[15:15:28] ==== [PASSED] drm_test_check_hdmi_color_format_420_only ====
[15:15:28] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[15:15:28] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[15:15:28] [PASSED] drm_test_check_broadcast_rgb_value
[15:15:28] [PASSED] drm_test_check_bpc_8_value
[15:15:28] [PASSED] drm_test_check_bpc_10_value
[15:15:28] [PASSED] drm_test_check_bpc_12_value
[15:15:29] [PASSED] drm_test_check_format_value
[15:15:29] [PASSED] drm_test_check_tmds_char_value
[15:15:29] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[15:15:29] = drm_atomic_helper_connector_hdmi_mode_valid (7 subtests) =
[15:15:29] [PASSED] drm_test_check_mode_valid
[15:15:29] [PASSED] drm_test_check_mode_valid_reject
[15:15:29] [PASSED] drm_test_check_mode_valid_reject_rate
[15:15:29] [PASSED] drm_test_check_mode_valid_reject_max_clock
[15:15:29] [PASSED] drm_test_check_mode_valid_yuv420_only_max_clock
[15:15:29] [PASSED] drm_test_check_mode_valid_reject_yuv420_only_connector
[15:15:29] [PASSED] drm_test_check_mode_valid_accept_yuv420_also_connector_rgb
[15:15:29] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[15:15:29] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[15:15:29] [PASSED] drm_test_check_infoframes
[15:15:29] [PASSED] drm_test_check_reject_avi_infoframe
[15:15:29] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[15:15:29] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[15:15:29] [PASSED] drm_test_check_reject_audio_infoframe
[15:15:29] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[15:15:29] ================= drm_managed (2 subtests) =================
[15:15:29] [PASSED] drm_test_managed_release_action
[15:15:29] [PASSED] drm_test_managed_run_action
[15:15:29] =================== [PASSED] drm_managed ===================
[15:15:29] =================== drm_mm (6 subtests) ====================
[15:15:29] [PASSED] drm_test_mm_init
[15:15:29] [PASSED] drm_test_mm_debug
[15:15:29] [PASSED] drm_test_mm_align32
[15:15:29] [PASSED] drm_test_mm_align64
[15:15:29] [PASSED] drm_test_mm_lowest
[15:15:29] [PASSED] drm_test_mm_highest
[15:15:29] ===================== [PASSED] drm_mm ======================
[15:15:29] ============= drm_modes_analog_tv (5 subtests) =============
[15:15:29] [PASSED] drm_test_modes_analog_tv_mono_576i
[15:15:29] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[15:15:29] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[15:15:29] [PASSED] drm_test_modes_analog_tv_pal_576i
[15:15:29] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[15:15:29] =============== [PASSED] drm_modes_analog_tv ===============
[15:15:29] ============== drm_panic_helper (3 subtests) ===============
[15:15:29] ============= drm_test_panic_screen_user_map ==============
[15:15:29] [PASSED] Panic screen user, mode: 1024 x 768 XR24 little-endian (0x34325258)
[15:15:29] [PASSED] Panic screen user, mode: 494 x 494 XR24 little-endian (0x34325258)
[15:15:29] [PASSED] Panic screen user, mode: 1920 x 1080 XR24 little-endian (0x34325258)
[15:15:29] [PASSED] Panic screen user, mode: 1024 x 768 RG16 little-endian (0x36314752)
[15:15:29] [PASSED] Panic screen user, mode: 1024 x 768 RG24 little-endian (0x34324752)
[15:15:29] [PASSED] Panic screen kmsg, mode: 1024 x 768 XR24 little-endian (0x34325258)
[15:15:29] [PASSED] Panic screen kmsg, mode: 494 x 494 XR24 little-endian (0x34325258)
[15:15:29] [PASSED] Panic screen kmsg, mode: 1920 x 1080 XR24 little-endian (0x34325258)
[15:15:29] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG16 little-endian (0x36314752)
[15:15:29] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG24 little-endian (0x34324752)
[15:15:29] ========= [PASSED] drm_test_panic_screen_user_map ==========
[15:15:29] ============= drm_test_panic_screen_user_page =============
[15:15:29] [PASSED] Panic screen user, mode: 1024 x 768 XR24 little-endian (0x34325258)
[15:15:29] [PASSED] Panic screen user, mode: 494 x 494 XR24 little-endian (0x34325258)
[15:15:29] [PASSED] Panic screen user, mode: 1920 x 1080 XR24 little-endian (0x34325258)
[15:15:29] [PASSED] Panic screen user, mode: 1024 x 768 RG16 little-endian (0x36314752)
[15:15:29] [PASSED] Panic screen user, mode: 1024 x 768 RG24 little-endian (0x34324752)
[15:15:29] [PASSED] Panic screen kmsg, mode: 1024 x 768 XR24 little-endian (0x34325258)
[15:15:29] [PASSED] Panic screen kmsg, mode: 494 x 494 XR24 little-endian (0x34325258)
[15:15:29] [PASSED] Panic screen kmsg, mode: 1920 x 1080 XR24 little-endian (0x34325258)
[15:15:29] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG16 little-endian (0x36314752)
[15:15:29] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG24 little-endian (0x34324752)
[15:15:29] ========= [PASSED] drm_test_panic_screen_user_page =========
[15:15:29] ========== drm_test_panic_screen_user_set_pixel ===========
[15:15:29] [PASSED] Panic screen user, mode: 1024 x 768 XR24 little-endian (0x34325258)
[15:15:29] [PASSED] Panic screen user, mode: 494 x 494 XR24 little-endian (0x34325258)
[15:15:29] [PASSED] Panic screen user, mode: 1920 x 1080 XR24 little-endian (0x34325258)
[15:15:29] [PASSED] Panic screen user, mode: 1024 x 768 RG16 little-endian (0x36314752)
[15:15:29] [PASSED] Panic screen user, mode: 1024 x 768 RG24 little-endian (0x34324752)
[15:15:29] [PASSED] Panic screen kmsg, mode: 1024 x 768 XR24 little-endian (0x34325258)
[15:15:29] [PASSED] Panic screen kmsg, mode: 494 x 494 XR24 little-endian (0x34325258)
[15:15:29] [PASSED] Panic screen kmsg, mode: 1920 x 1080 XR24 little-endian (0x34325258)
[15:15:29] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG16 little-endian (0x36314752)
[15:15:29] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG24 little-endian (0x34324752)
[15:15:29] ====== [PASSED] drm_test_panic_screen_user_set_pixel =======
[15:15:29] ================ [PASSED] drm_panic_helper =================
[15:15:29] ============== drm_plane_helper (2 subtests) ===============
[15:15:29] =============== drm_test_check_plane_state ================
[15:15:29] [PASSED] clipping_simple
[15:15:29] [PASSED] clipping_rotate_reflect
[15:15:29] [PASSED] positioning_simple
[15:15:29] [PASSED] upscaling
[15:15:29] [PASSED] downscaling
[15:15:29] [PASSED] rounding1
[15:15:29] [PASSED] rounding2
[15:15:29] [PASSED] rounding3
[15:15:29] [PASSED] rounding4
[15:15:29] =========== [PASSED] drm_test_check_plane_state ============
[15:15:29] =========== drm_test_check_invalid_plane_state ============
[15:15:29] [PASSED] positioning_invalid
[15:15:29] [PASSED] upscaling_invalid
[15:15:29] [PASSED] downscaling_invalid
[15:15:29] ======= [PASSED] drm_test_check_invalid_plane_state ========
[15:15:29] ================ [PASSED] drm_plane_helper =================
[15:15:29] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[15:15:29] ====== drm_test_connector_helper_tv_get_modes_check =======
[15:15:29] [PASSED] None
[15:15:29] [PASSED] PAL
[15:15:29] [PASSED] NTSC
[15:15:29] [PASSED] Both, NTSC Default
[15:15:29] [PASSED] Both, PAL Default
[15:15:29] [PASSED] Both, NTSC Default, with PAL on command-line
[15:15:29] [PASSED] Both, PAL Default, with NTSC on command-line
[15:15:29] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[15:15:29] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[15:15:29] ================== drm_rect (9 subtests) ===================
[15:15:29] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[15:15:29] [PASSED] drm_test_rect_clip_scaled_not_clipped
[15:15:29] [PASSED] drm_test_rect_clip_scaled_clipped
[15:15:29] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[15:15:29] ================= drm_test_rect_intersect =================
[15:15:29] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[15:15:29] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[15:15:29] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[15:15:29] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[15:15:29] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[15:15:29] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[15:15:29] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[15:15:29] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[15:15:29] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[15:15:29] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[15:15:29] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[15:15:29] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[15:15:29] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[15:15:29] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[15:15:29] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[15:15:29] ============= [PASSED] drm_test_rect_intersect =============
[15:15:29] ================ drm_test_rect_calc_hscale ================
[15:15:29] [PASSED] normal use
[15:15:29] [PASSED] out of max range
[15:15:29] [PASSED] out of min range
[15:15:29] [PASSED] zero dst
[15:15:29] [PASSED] negative src
[15:15:29] [PASSED] negative dst
[15:15:29] ============ [PASSED] drm_test_rect_calc_hscale ============
[15:15:29] ================ drm_test_rect_calc_vscale ================
[15:15:29] [PASSED] normal use
[15:15:29] [PASSED] out of max range
[15:15:29] [PASSED] out of min range
[15:15:29] [PASSED] zero dst
[15:15:29] [PASSED] negative src
[15:15:29] [PASSED] negative dst
[15:15:29] ============ [PASSED] drm_test_rect_calc_vscale ============
[15:15:29] ================== drm_test_rect_rotate ===================
[15:15:29] [PASSED] reflect-x
[15:15:29] [PASSED] reflect-y
[15:15:29] [PASSED] rotate-0
[15:15:29] [PASSED] rotate-90
[15:15:29] [PASSED] rotate-180
[15:15:29] [PASSED] rotate-270
[15:15:29] ============== [PASSED] drm_test_rect_rotate ===============
[15:15:29] ================ drm_test_rect_rotate_inv =================
[15:15:29] [PASSED] reflect-x
[15:15:29] [PASSED] reflect-y
[15:15:29] [PASSED] rotate-0
[15:15:29] [PASSED] rotate-90
[15:15:29] [PASSED] rotate-180
[15:15:29] [PASSED] rotate-270
[15:15:29] ============ [PASSED] drm_test_rect_rotate_inv =============
[15:15:29] ==================== [PASSED] drm_rect =====================
[15:15:29] ============ drm_sysfb_modeset_test (1 subtest) ============
[15:15:29] ============ drm_test_sysfb_build_fourcc_list =============
[15:15:29] [PASSED] no native formats
[15:15:29] [PASSED] XRGB8888 as native format
[15:15:29] [PASSED] remove duplicates
[15:15:29] [PASSED] convert alpha formats
[15:15:29] [PASSED] random formats
[15:15:29] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[15:15:29] ============= [PASSED] drm_sysfb_modeset_test ==============
[15:15:29] ================== drm_fixp (2 subtests) ===================
[15:15:29] [PASSED] drm_test_int2fixp
[15:15:29] [PASSED] drm_test_sm2fixp
[15:15:29] ==================== [PASSED] drm_fixp =====================
[15:15:29] ============================================================
[15:15:29] Testing complete. Ran 667 tests: passed: 667
[15:15:29] Elapsed time: 27.719s total, 1.854s configuring, 25.399s building, 0.453s 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
[15:15:29] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[15:15:31] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[15:15:41] Starting KUnit Kernel (1/1)...
[15:15:41] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[15:15:41] ================= ttm_device (5 subtests) ==================
[15:15:41] [PASSED] ttm_device_init_basic
[15:15:41] [PASSED] ttm_device_init_multiple
[15:15:41] [PASSED] ttm_device_fini_basic
[15:15:41] [PASSED] ttm_device_init_no_vma_man
[15:15:41] ================== ttm_device_init_pools ==================
[15:15:41] [PASSED] No DMA allocations, no DMA32 required
[15:15:41] [PASSED] DMA allocations, DMA32 required
[15:15:41] [PASSED] No DMA allocations, DMA32 required
[15:15:41] [PASSED] DMA allocations, no DMA32 required
[15:15:41] ============== [PASSED] ttm_device_init_pools ==============
[15:15:41] =================== [PASSED] ttm_device ====================
[15:15:41] ================== ttm_pool (8 subtests) ===================
[15:15:41] ================== ttm_pool_alloc_basic ===================
[15:15:41] [PASSED] One page
[15:15:41] [PASSED] More than one page
[15:15:41] [PASSED] Above the allocation limit
[15:15:41] [PASSED] One page, with coherent DMA mappings enabled
[15:15:41] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[15:15:41] ============== [PASSED] ttm_pool_alloc_basic ===============
[15:15:41] ============== ttm_pool_alloc_basic_dma_addr ==============
[15:15:41] [PASSED] One page
[15:15:41] [PASSED] More than one page
[15:15:41] [PASSED] Above the allocation limit
[15:15:41] [PASSED] One page, with coherent DMA mappings enabled
[15:15:41] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[15:15:41] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[15:15:41] [PASSED] ttm_pool_alloc_order_caching_match
[15:15:41] [PASSED] ttm_pool_alloc_caching_mismatch
[15:15:41] [PASSED] ttm_pool_alloc_order_mismatch
[15:15:41] [PASSED] ttm_pool_free_dma_alloc
[15:15:41] [PASSED] ttm_pool_free_no_dma_alloc
[15:15:41] [PASSED] ttm_pool_fini_basic
[15:15:41] ==================== [PASSED] ttm_pool =====================
[15:15:41] ================ ttm_resource (8 subtests) =================
[15:15:41] ================= ttm_resource_init_basic =================
[15:15:41] [PASSED] Init resource in TTM_PL_SYSTEM
[15:15:41] [PASSED] Init resource in TTM_PL_VRAM
[15:15:41] [PASSED] Init resource in a private placement
[15:15:41] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[15:15:41] ============= [PASSED] ttm_resource_init_basic =============
[15:15:41] [PASSED] ttm_resource_init_pinned
[15:15:41] [PASSED] ttm_resource_fini_basic
[15:15:41] [PASSED] ttm_resource_manager_init_basic
[15:15:41] [PASSED] ttm_resource_manager_usage_basic
[15:15:41] [PASSED] ttm_resource_manager_set_used_basic
[15:15:41] [PASSED] ttm_sys_man_alloc_basic
[15:15:41] [PASSED] ttm_sys_man_free_basic
[15:15:41] ================== [PASSED] ttm_resource ===================
[15:15:41] =================== ttm_tt (15 subtests) ===================
[15:15:41] ==================== ttm_tt_init_basic ====================
[15:15:41] [PASSED] Page-aligned size
[15:15:41] [PASSED] Extra pages requested
[15:15:41] ================ [PASSED] ttm_tt_init_basic ================
[15:15:41] [PASSED] ttm_tt_init_misaligned
[15:15:41] [PASSED] ttm_tt_fini_basic
[15:15:41] [PASSED] ttm_tt_fini_sg
[15:15:41] [PASSED] ttm_tt_fini_shmem
[15:15:41] [PASSED] ttm_tt_create_basic
[15:15:41] [PASSED] ttm_tt_create_invalid_bo_type
[15:15:41] [PASSED] ttm_tt_create_ttm_exists
[15:15:41] [PASSED] ttm_tt_create_failed
[15:15:41] [PASSED] ttm_tt_destroy_basic
[15:15:41] [PASSED] ttm_tt_populate_null_ttm
[15:15:41] [PASSED] ttm_tt_populate_populated_ttm
[15:15:41] [PASSED] ttm_tt_unpopulate_basic
[15:15:41] [PASSED] ttm_tt_unpopulate_empty_ttm
[15:15:41] [PASSED] ttm_tt_swapin_basic
[15:15:41] ===================== [PASSED] ttm_tt ======================
[15:15:41] =================== ttm_bo (14 subtests) ===================
[15:15:41] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[15:15:41] [PASSED] Cannot be interrupted and sleeps
[15:15:41] [PASSED] Cannot be interrupted, locks straight away
[15:15:41] [PASSED] Can be interrupted, sleeps
[15:15:41] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[15:15:41] [PASSED] ttm_bo_reserve_locked_no_sleep
[15:15:41] [PASSED] ttm_bo_reserve_no_wait_ticket
[15:15:41] [PASSED] ttm_bo_reserve_double_resv
[15:15:41] [PASSED] ttm_bo_reserve_interrupted
[15:15:41] [PASSED] ttm_bo_reserve_deadlock
[15:15:41] [PASSED] ttm_bo_unreserve_basic
[15:15:41] [PASSED] ttm_bo_unreserve_pinned
[15:15:41] [PASSED] ttm_bo_unreserve_bulk
[15:15:41] [PASSED] ttm_bo_fini_basic
[15:15:41] [PASSED] ttm_bo_fini_shared_resv
[15:15:41] [PASSED] ttm_bo_pin_basic
[15:15:41] [PASSED] ttm_bo_pin_unpin_resource
[15:15:41] [PASSED] ttm_bo_multiple_pin_one_unpin
[15:15:41] ===================== [PASSED] ttm_bo ======================
[15:15:41] ============== ttm_bo_validate (22 subtests) ===============
[15:15:41] ============== ttm_bo_init_reserved_sys_man ===============
[15:15:41] [PASSED] Buffer object for userspace
[15:15:41] [PASSED] Kernel buffer object
[15:15:41] [PASSED] Shared buffer object
[15:15:41] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[15:15:41] ============== ttm_bo_init_reserved_mock_man ==============
[15:15:41] [PASSED] Buffer object for userspace
[15:15:41] [PASSED] Kernel buffer object
[15:15:41] [PASSED] Shared buffer object
[15:15:41] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[15:15:41] [PASSED] ttm_bo_init_reserved_resv
[15:15:41] ================== ttm_bo_validate_basic ==================
[15:15:41] [PASSED] Buffer object for userspace
[15:15:41] [PASSED] Kernel buffer object
[15:15:41] [PASSED] Shared buffer object
[15:15:41] ============== [PASSED] ttm_bo_validate_basic ==============
[15:15:41] [PASSED] ttm_bo_validate_invalid_placement
[15:15:41] ============= ttm_bo_validate_same_placement ==============
[15:15:41] [PASSED] System manager
[15:15:41] [PASSED] VRAM manager
[15:15:41] ========= [PASSED] ttm_bo_validate_same_placement ==========
[15:15:41] [PASSED] ttm_bo_validate_failed_alloc
[15:15:41] [PASSED] ttm_bo_validate_pinned
[15:15:41] [PASSED] ttm_bo_validate_busy_placement
[15:15:41] ================ ttm_bo_validate_multihop =================
[15:15:41] [PASSED] Buffer object for userspace
[15:15:41] [PASSED] Kernel buffer object
[15:15:41] [PASSED] Shared buffer object
[15:15:41] ============ [PASSED] ttm_bo_validate_multihop =============
[15:15:41] ========== ttm_bo_validate_no_placement_signaled ==========
[15:15:41] [PASSED] Buffer object in system domain, no page vector
[15:15:41] [PASSED] Buffer object in system domain with an existing page vector
[15:15:41] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[15:15:41] ======== ttm_bo_validate_no_placement_not_signaled ========
[15:15:41] [PASSED] Buffer object for userspace
[15:15:41] [PASSED] Kernel buffer object
[15:15:41] [PASSED] Shared buffer object
[15:15:41] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[15:15:41] [PASSED] ttm_bo_validate_move_fence_signaled
[15:15:41] ========= ttm_bo_validate_move_fence_not_signaled =========
[15:15:41] [PASSED] Waits for GPU
[15:15:41] [PASSED] Tries to lock straight away
[15:15:41] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[15:15:41] [PASSED] ttm_bo_validate_swapout
[15:15:41] [PASSED] ttm_bo_validate_happy_evict
[15:15:41] [PASSED] ttm_bo_validate_all_pinned_evict
[15:15:41] [PASSED] ttm_bo_validate_allowed_only_evict
[15:15:41] [PASSED] ttm_bo_validate_deleted_evict
[15:15:41] [PASSED] ttm_bo_validate_busy_domain_evict
[15:15:41] [PASSED] ttm_bo_validate_evict_gutting
[15:15:41] [PASSED] ttm_bo_validate_recrusive_evict
[15:15:41] ================= [PASSED] ttm_bo_validate =================
[15:15:41] ============================================================
[15:15:41] Testing complete. Ran 102 tests: passed: 102
[15:15:41] Elapsed time: 12.171s total, 1.826s configuring, 10.129s building, 0.181s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/dma-buf/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/dma-buf/.kunitconfig
[15:15:41] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[15:15:43] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[15:15:52] Starting KUnit Kernel (1/1)...
[15:15:52] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[15:15:52] =============== dma-buf-fence (12 subtests) ================
[15:15:52] [PASSED] test_sanitycheck
[15:15:52] [PASSED] test_signaling
[15:15:52] [PASSED] test_add_callback
[15:15:52] [PASSED] test_late_add_callback
[15:15:52] [PASSED] test_rm_callback
[15:15:52] [PASSED] test_late_rm_callback
[15:15:52] [PASSED] test_status
[15:15:52] [PASSED] test_error
[15:15:52] [PASSED] test_wait
[15:15:52] [PASSED] test_wait_timeout
[15:15:52] [PASSED] test_stub
[15:15:52] [SKIPPED] test_race_signal_callback (requires at least 2 CPUs)
[15:15:52] ================== [PASSED] dma-buf-fence ==================
[15:15:52] ============ dma-buf-fence-chain (11 subtests) =============
[15:15:52] [PASSED] test_sanitycheck
[15:15:52] [PASSED] test_find_seqno
[15:15:52] [PASSED] test_find_signaled
[15:15:52] [PASSED] test_find_out_of_order
[15:15:57] [PASSED] test_find_gap
[15:15:57] [PASSED] test_find_race
[15:15:57] [PASSED] test_signal_forward
[15:15:57] [PASSED] test_signal_backward
[15:15:57] [PASSED] test_wait_forward
[15:15:57] [PASSED] test_wait_backward
[15:15:57] [PASSED] test_wait_random
[15:15:57] =============== [PASSED] dma-buf-fence-chain ===============
[15:15:57] ============ dma-buf-fence-unwrap (11 subtests) ============
[15:15:57] [PASSED] test_sanitycheck
[15:15:57] [PASSED] test_unwrap_array
[15:15:57] [PASSED] test_unwrap_chain
[15:15:57] [PASSED] test_unwrap_chain_array
[15:15:57] [PASSED] test_unwrap_merge
[15:15:57] [PASSED] test_unwrap_merge_duplicate
[15:15:57] [PASSED] test_unwrap_merge_seqno
[15:15:57] [PASSED] test_unwrap_merge_order
[15:15:57] [PASSED] test_unwrap_merge_complex
[15:15:57] [PASSED] test_unwrap_merge_complex_seqno
[15:15:57] [PASSED] test_dedup_empty
[15:15:57] ============== [PASSED] dma-buf-fence-unwrap ===============
[15:15:57] ================ dma-buf-resv (5 subtests) =================
[15:15:57] [PASSED] test_sanitycheck
[15:15:57] ===================== test_signaling ======================
[15:15:57] [PASSED] kernel
[15:15:57] [PASSED] write
[15:15:57] [PASSED] read
[15:15:57] [PASSED] bookkeep
[15:15:57] ================= [PASSED] test_signaling ==================
[15:15:57] ====================== test_for_each ======================
[15:15:57] [PASSED] kernel
[15:15:57] [PASSED] write
[15:15:57] [PASSED] read
[15:15:57] [PASSED] bookkeep
[15:15:57] ================== [PASSED] test_for_each ==================
[15:15:57] ================= test_for_each_unlocked ==================
[15:15:57] [PASSED] kernel
[15:15:57] [PASSED] write
[15:15:57] [PASSED] read
[15:15:57] [PASSED] bookkeep
[15:15:57] ============= [PASSED] test_for_each_unlocked ==============
[15:15:57] ===================== test_get_fences =====================
[15:15:57] [PASSED] kernel
[15:15:57] [PASSED] write
[15:15:57] [PASSED] read
[15:15:57] [PASSED] bookkeep
[15:15:57] ================= [PASSED] test_get_fences =================
[15:15:57] ================== [PASSED] dma-buf-resv ===================
[15:15:57] ============================================================
[15:15:57] Testing complete. Ran 51 tests: passed: 50, skipped: 1
[15:15:57] Elapsed time: 15.880s total, 1.875s configuring, 8.733s building, 5.259s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 13+ messages in thread* ✓ Xe.CI.BAT: success for Add ocode late binding support for CRI (rev6)
2026-10-30 14:45 [PATCH v6 0/6] Add ocode late binding support for CRI Badal Nilawar
` (6 preceding siblings ...)
2026-10-30 15:16 ` ✓ CI.KUnit: success for Add ocode late binding support for CRI (rev6) Patchwork
@ 2026-10-30 15:52 ` Patchwork
7 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2026-10-30 15:52 UTC (permalink / raw)
To: Badal Nilawar; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 909 bytes --]
== Series Details ==
Series: Add ocode late binding support for CRI (rev6)
URL : https://patchwork.freedesktop.org/series/162657/
State : success
== Summary ==
CI Bug Log - changes from xe-6035-eea36991e0c743ff65da0735c827bb8d57de78f9_BAT -> xe-pw-162657v6_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (15 -> 14)
------------------------------
Missing (1): bat-nvls-2
Changes
-------
No changes found
Build changes
-------------
* IGT: IGT_9171 -> IGT_9172
* Linux: xe-6035-eea36991e0c743ff65da0735c827bb8d57de78f9 -> xe-pw-162657v6
IGT_9171: 9171
IGT_9172: 9172
xe-6035-eea36991e0c743ff65da0735c827bb8d57de78f9: eea36991e0c743ff65da0735c827bb8d57de78f9
xe-pw-162657v6: 162657v6
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v6/index.html
[-- Attachment #2: Type: text/html, Size: 1471 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread