* [PATCH v7 0/6] platform/x86/intel/vsec: Prep for ACPI PMT discovery
@ 2026-03-03 5:19 David E. Box
2026-03-03 5:19 ` [PATCH v7 1/6] platform/x86/intel/vsec: Refactor base_addr handling David E. Box
` (8 more replies)
0 siblings, 9 replies; 13+ messages in thread
From: David E. Box @ 2026-03-03 5:19 UTC (permalink / raw)
To: thomas.hellstrom, rodrigo.vivi, irenic.rajneesh, ilpo.jarvinen,
srinivas.pandruvada, intel-xe, dri-devel, xi.pardee
Cc: david.e.box, hansg, linux-kernel, platform-driver-x86
This series updates intel_vsec to improve const-correctness, decouple
helper APIs from PCI, enhance error handling, and plumb ACPI-based Intel
Platform Monitoring Technology (PMT) discovery through the vsec layer. It
is preparatory infrastructure for follow-on PMT core/telemetry and
PMC/SSRAM series that add ACPI discovery and support for new platforms.
The series is organized as follows:
Patches 1-2 refactor and improve const-correctness of base_addr handling.
Patch 1 makes base_addr an explicit parameter throughout the call chain,
clarifying ownership and removing conditional logic. Patch 2 then makes the
platform info data structure read-only, preventing unintended modifications
to shared driver data.
Patches 3-4 decouple the vsec layer from PCI-specific types, updating
helper APIs and data structures to use generic struct device instead of
struct pci_dev. This enables vsec to work with both PCI and ACPI parent
devices.
Patch 5 enhances error visibility by returning meaningful error codes from
the registration path instead of collapsing to boolean success/failure.
Patch 6 adds infrastructure for ACPI-based PMT discovery, allowing client
drivers to consume discovery data from either PCI or ACPI sources.
Signed-off-by: David E. Box <david.e.box@linux.intel.com>
Changes in v7:
Fix but found from incorrect struct device * passed to
intel_vsec_add_aux(). When the unused first parameter was originally
removed, the remaining device argument was inadvertently changed from the
aux device to the PCI device. Patch 3 restores &vsec_dev->auxdev.dev, and
patch 4 drops a follow-on change that would have reverted it back to the
PCI device.
David E. Box (6):
platform/x86/intel/vsec: Refactor base_addr handling
platform/x86/intel/vsec: Make driver_data info const
platform/x86/intel/vsec: Decouple add/link helpers from PCI
platform/x86/intel/vsec: Switch exported helpers from pci_dev to
device
platform/x86/intel/vsec: Return real error codes from registration
path
platform/x86/intel/vsec: Plumb ACPI PMT discovery tables through vsec
drivers/gpu/drm/xe/xe_debugfs.c | 2 +-
drivers/gpu/drm/xe/xe_hwmon.c | 2 +-
drivers/gpu/drm/xe/xe_vsec.c | 7 +-
drivers/gpu/drm/xe/xe_vsec.h | 4 +-
drivers/platform/x86/intel/pmc/core.c | 4 +-
.../platform/x86/intel/pmc/ssram_telemetry.c | 2 +-
drivers/platform/x86/intel/pmt/class.c | 8 +-
drivers/platform/x86/intel/pmt/class.h | 5 +-
drivers/platform/x86/intel/pmt/discovery.c | 4 +-
drivers/platform/x86/intel/pmt/telemetry.c | 13 +-
drivers/platform/x86/intel/pmt/telemetry.h | 12 +-
drivers/platform/x86/intel/sdsi.c | 5 +-
drivers/platform/x86/intel/vsec.c | 121 +++++++++++-------
drivers/platform/x86/intel/vsec_tpmi.c | 8 +-
include/linux/intel_vsec.h | 39 ++++--
15 files changed, 143 insertions(+), 93 deletions(-)
--
2.43.0
^ permalink raw reply [flat|nested] 13+ messages in thread* [PATCH v7 1/6] platform/x86/intel/vsec: Refactor base_addr handling 2026-03-03 5:19 [PATCH v7 0/6] platform/x86/intel/vsec: Prep for ACPI PMT discovery David E. Box @ 2026-03-03 5:19 ` David E. Box 2026-03-04 20:06 ` Ruhl, Michael J 2026-03-03 5:19 ` [PATCH v7 2/6] platform/x86/intel/vsec: Make driver_data info const David E. Box ` (7 subsequent siblings) 8 siblings, 1 reply; 13+ messages in thread From: David E. Box @ 2026-03-03 5:19 UTC (permalink / raw) To: thomas.hellstrom, rodrigo.vivi, irenic.rajneesh, ilpo.jarvinen, srinivas.pandruvada, intel-xe, dri-devel, xi.pardee Cc: david.e.box, hansg, linux-kernel, platform-driver-x86 The base_addr field in intel_vsec_platform_info was originally added to support devices that emulate PCI VSEC capabilities in MMIO. Previously, the code would check at registration time whether base_addr was set, falling back to the PCI BAR if not. Refactor this by making base_addr an explicit function parameter. This clarifies ownership of the value and removes conditional logic from intel_vsec_add_dev(). It also enables making intel_vsec_platform_info const in a later patch, since the function no longer needs to write to info->base_addr. No functional change intended. Signed-off-by: David E. Box <david.e.box@linux.intel.com> --- Changes in v7: - No change Changes in v6: - No change Changes in v5: - No change Changes in v4: - No change Changes in v3: - No change Changes in v2: - Use pci_resource_start() macro instead of direct pdev->resource array access (suggested by Ilpo) drivers/platform/x86/intel/vsec.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/drivers/platform/x86/intel/vsec.c b/drivers/platform/x86/intel/vsec.c index 5059d320edf8..46966edca03b 100644 --- a/drivers/platform/x86/intel/vsec.c +++ b/drivers/platform/x86/intel/vsec.c @@ -271,14 +271,13 @@ EXPORT_SYMBOL_NS_GPL(intel_vsec_add_aux, "INTEL_VSEC"); static int intel_vsec_add_dev(struct pci_dev *pdev, struct intel_vsec_header *header, struct intel_vsec_platform_info *info, - unsigned long cap_id) + unsigned long cap_id, u64 base_addr) { struct intel_vsec_device __free(kfree) *intel_vsec_dev = NULL; struct resource __free(kfree) *res = NULL; struct resource *tmp; struct device *parent; unsigned long quirks = info->quirks; - u64 base_addr; int i; if (info->parent) @@ -310,11 +309,6 @@ static int intel_vsec_add_dev(struct pci_dev *pdev, struct intel_vsec_header *he if (quirks & VSEC_QUIRK_TABLE_SHIFT) header->offset >>= TABLE_OFFSET_SHIFT; - if (info->base_addr) - base_addr = info->base_addr; - else - base_addr = pdev->resource[header->tbir].start; - /* * The DVSEC/VSEC contains the starting offset and count for a block of * discovery tables. Create a resource array of these tables to the @@ -412,7 +406,8 @@ static int get_cap_id(u32 header_id, unsigned long *cap_id) static int intel_vsec_register_device(struct pci_dev *pdev, struct intel_vsec_header *header, - struct intel_vsec_platform_info *info) + struct intel_vsec_platform_info *info, + u64 base_addr) { const struct vsec_feature_dependency *consumer_deps; struct vsec_priv *priv; @@ -428,7 +423,7 @@ static int intel_vsec_register_device(struct pci_dev *pdev, * For others using the exported APIs, add the device directly. */ if (!pci_match_id(intel_vsec_pci_ids, pdev)) - return intel_vsec_add_dev(pdev, header, info, cap_id); + return intel_vsec_add_dev(pdev, header, info, cap_id, base_addr); priv = pci_get_drvdata(pdev); if (priv->state[cap_id] == STATE_REGISTERED || @@ -444,7 +439,7 @@ static int intel_vsec_register_device(struct pci_dev *pdev, consumer_deps = get_consumer_dependencies(priv, cap_id); if (!consumer_deps || suppliers_ready(priv, consumer_deps, cap_id)) { - ret = intel_vsec_add_dev(pdev, header, info, cap_id); + ret = intel_vsec_add_dev(pdev, header, info, cap_id, base_addr); if (ret) priv->state[cap_id] = STATE_SKIP; else @@ -464,7 +459,7 @@ static bool intel_vsec_walk_header(struct pci_dev *pdev, int ret; for ( ; *header; header++) { - ret = intel_vsec_register_device(pdev, *header, info); + ret = intel_vsec_register_device(pdev, *header, info, info->base_addr); if (!ret) have_devices = true; } @@ -512,7 +507,8 @@ static bool intel_vsec_walk_dvsec(struct pci_dev *pdev, pci_read_config_dword(pdev, pos + PCI_DVSEC_HEADER2, &hdr); header.id = PCI_DVSEC_HEADER2_ID(hdr); - ret = intel_vsec_register_device(pdev, &header, info); + ret = intel_vsec_register_device(pdev, &header, info, + pci_resource_start(pdev, header.tbir)); if (ret) continue; @@ -557,7 +553,8 @@ static bool intel_vsec_walk_vsec(struct pci_dev *pdev, header.tbir = INTEL_DVSEC_TABLE_BAR(table); header.offset = INTEL_DVSEC_TABLE_OFFSET(table); - ret = intel_vsec_register_device(pdev, &header, info); + ret = intel_vsec_register_device(pdev, &header, info, + pci_resource_start(pdev, header.tbir)); if (ret) continue; -- 2.43.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* RE: [PATCH v7 1/6] platform/x86/intel/vsec: Refactor base_addr handling 2026-03-03 5:19 ` [PATCH v7 1/6] platform/x86/intel/vsec: Refactor base_addr handling David E. Box @ 2026-03-04 20:06 ` Ruhl, Michael J 0 siblings, 0 replies; 13+ messages in thread From: Ruhl, Michael J @ 2026-03-04 20:06 UTC (permalink / raw) To: David E. Box, thomas.hellstrom@linux.intel.com, Vivi, Rodrigo, irenic.rajneesh@gmail.com, ilpo.jarvinen@linux.intel.com, srinivas.pandruvada@linux.intel.com, intel-xe@lists.freedesktop.org, dri-devel@lists.freedesktop.org, xi.pardee@linux.intel.com Cc: hansg@kernel.org, linux-kernel@vger.kernel.org, platform-driver-x86@vger.kernel.org >-----Original Message----- >From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of David E. >Box >Sent: Tuesday, March 3, 2026 12:20 AM >To: thomas.hellstrom@linux.intel.com; Vivi, Rodrigo <rodrigo.vivi@intel.com>; >irenic.rajneesh@gmail.com; ilpo.jarvinen@linux.intel.com; >srinivas.pandruvada@linux.intel.com; intel-xe@lists.freedesktop.org; dri- >devel@lists.freedesktop.org; xi.pardee@linux.intel.com >Cc: david.e.box@linux.intel.com; hansg@kernel.org; linux- >kernel@vger.kernel.org; platform-driver-x86@vger.kernel.org >Subject: [PATCH v7 1/6] platform/x86/intel/vsec: Refactor base_addr handling > >The base_addr field in intel_vsec_platform_info was originally added to >support devices that emulate PCI VSEC capabilities in MMIO. Previously, >the code would check at registration time whether base_addr was set, >falling back to the PCI BAR if not. It looks like this value could be set in the various static info struct (tgl_info, etc). Would this be a reasonably thing to set/do? Should the documentation be updated to specify specific use cases? >Refactor this by making base_addr an explicit function parameter. This >clarifies ownership of the value and removes conditional logic from >intel_vsec_add_dev(). It also enables making intel_vsec_platform_info >const in a later patch, since the function no longer needs to write to >info->base_addr. This makes the base_addr usage a lot more clear. Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com> M >No functional change intended. > >Signed-off-by: David E. Box <david.e.box@linux.intel.com> >--- >Changes in v7: > - No change > >Changes in v6: > - No change > >Changes in v5: > - No change > >Changes in v4: > - No change > >Changes in v3: > - No change > >Changes in v2: > - Use pci_resource_start() macro instead of direct pdev->resource array > access (suggested by Ilpo) > > drivers/platform/x86/intel/vsec.c | 23 ++++++++++------------- > 1 file changed, 10 insertions(+), 13 deletions(-) > >diff --git a/drivers/platform/x86/intel/vsec.c >b/drivers/platform/x86/intel/vsec.c >index 5059d320edf8..46966edca03b 100644 >--- a/drivers/platform/x86/intel/vsec.c >+++ b/drivers/platform/x86/intel/vsec.c >@@ -271,14 +271,13 @@ EXPORT_SYMBOL_NS_GPL(intel_vsec_add_aux, >"INTEL_VSEC"); > > static int intel_vsec_add_dev(struct pci_dev *pdev, struct intel_vsec_header >*header, > struct intel_vsec_platform_info *info, >- unsigned long cap_id) >+ unsigned long cap_id, u64 base_addr) > { > struct intel_vsec_device __free(kfree) *intel_vsec_dev = NULL; > struct resource __free(kfree) *res = NULL; > struct resource *tmp; > struct device *parent; > unsigned long quirks = info->quirks; >- u64 base_addr; > int i; > > if (info->parent) >@@ -310,11 +309,6 @@ static int intel_vsec_add_dev(struct pci_dev *pdev, >struct intel_vsec_header *he > if (quirks & VSEC_QUIRK_TABLE_SHIFT) > header->offset >>= TABLE_OFFSET_SHIFT; > >- if (info->base_addr) >- base_addr = info->base_addr; >- else >- base_addr = pdev->resource[header->tbir].start; >- > /* > * The DVSEC/VSEC contains the starting offset and count for a block of > * discovery tables. Create a resource array of these tables to the >@@ -412,7 +406,8 @@ static int get_cap_id(u32 header_id, unsigned long >*cap_id) > > static int intel_vsec_register_device(struct pci_dev *pdev, > struct intel_vsec_header *header, >- struct intel_vsec_platform_info *info) >+ struct intel_vsec_platform_info *info, >+ u64 base_addr) > { > const struct vsec_feature_dependency *consumer_deps; > struct vsec_priv *priv; >@@ -428,7 +423,7 @@ static int intel_vsec_register_device(struct pci_dev >*pdev, > * For others using the exported APIs, add the device directly. > */ > if (!pci_match_id(intel_vsec_pci_ids, pdev)) >- return intel_vsec_add_dev(pdev, header, info, cap_id); >+ return intel_vsec_add_dev(pdev, header, info, cap_id, >base_addr); > > priv = pci_get_drvdata(pdev); > if (priv->state[cap_id] == STATE_REGISTERED || >@@ -444,7 +439,7 @@ static int intel_vsec_register_device(struct pci_dev >*pdev, > > consumer_deps = get_consumer_dependencies(priv, cap_id); > if (!consumer_deps || suppliers_ready(priv, consumer_deps, cap_id)) { >- ret = intel_vsec_add_dev(pdev, header, info, cap_id); >+ ret = intel_vsec_add_dev(pdev, header, info, cap_id, >base_addr); > if (ret) > priv->state[cap_id] = STATE_SKIP; > else >@@ -464,7 +459,7 @@ static bool intel_vsec_walk_header(struct pci_dev >*pdev, > int ret; > > for ( ; *header; header++) { >- ret = intel_vsec_register_device(pdev, *header, info); >+ ret = intel_vsec_register_device(pdev, *header, info, info- >>base_addr); > if (!ret) > have_devices = true; > } >@@ -512,7 +507,8 @@ static bool intel_vsec_walk_dvsec(struct pci_dev >*pdev, > pci_read_config_dword(pdev, pos + PCI_DVSEC_HEADER2, >&hdr); > header.id = PCI_DVSEC_HEADER2_ID(hdr); > >- ret = intel_vsec_register_device(pdev, &header, info); >+ ret = intel_vsec_register_device(pdev, &header, info, >+ pci_resource_start(pdev, >header.tbir)); > if (ret) > continue; > >@@ -557,7 +553,8 @@ static bool intel_vsec_walk_vsec(struct pci_dev *pdev, > header.tbir = INTEL_DVSEC_TABLE_BAR(table); > header.offset = INTEL_DVSEC_TABLE_OFFSET(table); > >- ret = intel_vsec_register_device(pdev, &header, info); >+ ret = intel_vsec_register_device(pdev, &header, info, >+ pci_resource_start(pdev, >header.tbir)); > if (ret) > continue; > >-- >2.43.0 ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v7 2/6] platform/x86/intel/vsec: Make driver_data info const 2026-03-03 5:19 [PATCH v7 0/6] platform/x86/intel/vsec: Prep for ACPI PMT discovery David E. Box 2026-03-03 5:19 ` [PATCH v7 1/6] platform/x86/intel/vsec: Refactor base_addr handling David E. Box @ 2026-03-03 5:19 ` David E. Box 2026-03-04 20:08 ` Ruhl, Michael J 2026-03-03 5:19 ` [PATCH v7 3/6] platform/x86/intel/vsec: Decouple add/link helpers from PCI David E. Box ` (6 subsequent siblings) 8 siblings, 1 reply; 13+ messages in thread From: David E. Box @ 2026-03-03 5:19 UTC (permalink / raw) To: thomas.hellstrom, rodrigo.vivi, irenic.rajneesh, ilpo.jarvinen, srinivas.pandruvada, intel-xe, dri-devel, xi.pardee Cc: david.e.box, hansg, linux-kernel, platform-driver-x86 Treat PCI id->driver_data (intel_vsec_platform_info) as read-only by making vsec_priv->info a const pointer and updating all function signatures to accept const intel_vsec_platform_info *. This improves const-correctness and clarifies that the platform info data from the driver_data table is not meant to be modified at runtime. No functional changes intended. Signed-off-by: David E. Box <david.e.box@linux.intel.com> --- Changes in v7: - No change Changes in v6: - No change Changes in v5: - No change Changes in v4: - No change Changes in v3: - No change Changes in v2: - New patch drivers/platform/x86/intel/vsec.c | 20 ++++++++++---------- include/linux/intel_vsec.h | 4 ++-- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/platform/x86/intel/vsec.c b/drivers/platform/x86/intel/vsec.c index 46966edca03b..e0096be605d9 100644 --- a/drivers/platform/x86/intel/vsec.c +++ b/drivers/platform/x86/intel/vsec.c @@ -42,7 +42,7 @@ enum vsec_device_state { }; struct vsec_priv { - struct intel_vsec_platform_info *info; + const struct intel_vsec_platform_info *info; struct device *suppliers[VSEC_FEATURE_COUNT]; struct oobmsm_plat_info plat_info; enum vsec_device_state state[VSEC_FEATURE_COUNT]; @@ -270,7 +270,7 @@ int intel_vsec_add_aux(struct pci_dev *pdev, struct device *parent, EXPORT_SYMBOL_NS_GPL(intel_vsec_add_aux, "INTEL_VSEC"); static int intel_vsec_add_dev(struct pci_dev *pdev, struct intel_vsec_header *header, - struct intel_vsec_platform_info *info, + const struct intel_vsec_platform_info *info, unsigned long cap_id, u64 base_addr) { struct intel_vsec_device __free(kfree) *intel_vsec_dev = NULL; @@ -406,7 +406,7 @@ static int get_cap_id(u32 header_id, unsigned long *cap_id) static int intel_vsec_register_device(struct pci_dev *pdev, struct intel_vsec_header *header, - struct intel_vsec_platform_info *info, + const struct intel_vsec_platform_info *info, u64 base_addr) { const struct vsec_feature_dependency *consumer_deps; @@ -452,7 +452,7 @@ static int intel_vsec_register_device(struct pci_dev *pdev, } static bool intel_vsec_walk_header(struct pci_dev *pdev, - struct intel_vsec_platform_info *info) + const struct intel_vsec_platform_info *info) { struct intel_vsec_header **header = info->headers; bool have_devices = false; @@ -468,7 +468,7 @@ static bool intel_vsec_walk_header(struct pci_dev *pdev, } static bool intel_vsec_walk_dvsec(struct pci_dev *pdev, - struct intel_vsec_platform_info *info) + const struct intel_vsec_platform_info *info) { bool have_devices = false; int pos = 0; @@ -519,7 +519,7 @@ static bool intel_vsec_walk_dvsec(struct pci_dev *pdev, } static bool intel_vsec_walk_vsec(struct pci_dev *pdev, - struct intel_vsec_platform_info *info) + const struct intel_vsec_platform_info *info) { bool have_devices = false; int pos = 0; @@ -565,7 +565,7 @@ static bool intel_vsec_walk_vsec(struct pci_dev *pdev, } int intel_vsec_register(struct pci_dev *pdev, - struct intel_vsec_platform_info *info) + const struct intel_vsec_platform_info *info) { if (!pdev || !info || !info->headers) return -EINVAL; @@ -578,7 +578,7 @@ int intel_vsec_register(struct pci_dev *pdev, EXPORT_SYMBOL_NS_GPL(intel_vsec_register, "INTEL_VSEC"); static bool intel_vsec_get_features(struct pci_dev *pdev, - struct intel_vsec_platform_info *info) + const struct intel_vsec_platform_info *info) { bool found = false; @@ -622,7 +622,7 @@ static void intel_vsec_skip_missing_dependencies(struct pci_dev *pdev) static int intel_vsec_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) { - struct intel_vsec_platform_info *info; + const struct intel_vsec_platform_info *info; struct vsec_priv *priv; int num_caps, ret; int run_once = 0; @@ -633,7 +633,7 @@ static int intel_vsec_pci_probe(struct pci_dev *pdev, const struct pci_device_id return ret; pci_save_state(pdev); - info = (struct intel_vsec_platform_info *)id->driver_data; + info = (const struct intel_vsec_platform_info *)id->driver_data; if (!info) return -EINVAL; diff --git a/include/linux/intel_vsec.h b/include/linux/intel_vsec.h index 1a0f357c2427..d551174b0049 100644 --- a/include/linux/intel_vsec.h +++ b/include/linux/intel_vsec.h @@ -200,13 +200,13 @@ static inline struct intel_vsec_device *auxdev_to_ivdev(struct auxiliary_device #if IS_ENABLED(CONFIG_INTEL_VSEC) int intel_vsec_register(struct pci_dev *pdev, - struct intel_vsec_platform_info *info); + const struct intel_vsec_platform_info *info); int intel_vsec_set_mapping(struct oobmsm_plat_info *plat_info, struct intel_vsec_device *vsec_dev); struct oobmsm_plat_info *intel_vsec_get_mapping(struct pci_dev *pdev); #else static inline int intel_vsec_register(struct pci_dev *pdev, - struct intel_vsec_platform_info *info) + const struct intel_vsec_platform_info *info) { return -ENODEV; } -- 2.43.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* RE: [PATCH v7 2/6] platform/x86/intel/vsec: Make driver_data info const 2026-03-03 5:19 ` [PATCH v7 2/6] platform/x86/intel/vsec: Make driver_data info const David E. Box @ 2026-03-04 20:08 ` Ruhl, Michael J 0 siblings, 0 replies; 13+ messages in thread From: Ruhl, Michael J @ 2026-03-04 20:08 UTC (permalink / raw) To: David E. Box, thomas.hellstrom@linux.intel.com, Vivi, Rodrigo, irenic.rajneesh@gmail.com, ilpo.jarvinen@linux.intel.com, srinivas.pandruvada@linux.intel.com, intel-xe@lists.freedesktop.org, dri-devel@lists.freedesktop.org, xi.pardee@linux.intel.com Cc: hansg@kernel.org, linux-kernel@vger.kernel.org, platform-driver-x86@vger.kernel.org >-----Original Message----- >From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of David E. >Box >Sent: Tuesday, March 3, 2026 12:20 AM >To: thomas.hellstrom@linux.intel.com; Vivi, Rodrigo <rodrigo.vivi@intel.com>; >irenic.rajneesh@gmail.com; ilpo.jarvinen@linux.intel.com; >srinivas.pandruvada@linux.intel.com; intel-xe@lists.freedesktop.org; dri- >devel@lists.freedesktop.org; xi.pardee@linux.intel.com >Cc: david.e.box@linux.intel.com; hansg@kernel.org; linux- >kernel@vger.kernel.org; platform-driver-x86@vger.kernel.org >Subject: [PATCH v7 2/6] platform/x86/intel/vsec: Make driver_data info const > >Treat PCI id->driver_data (intel_vsec_platform_info) as read-only by making >vsec_priv->info a const pointer and updating all function signatures to >accept const intel_vsec_platform_info *. > >This improves const-correctness and clarifies that the platform info data >from the driver_data table is not meant to be modified at runtime. > >No functional changes intended. > >Signed-off-by: David E. Box <david.e.box@linux.intel.com> Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com> >--- >Changes in v7: > - No change > >Changes in v6: > - No change > >Changes in v5: > - No change > >Changes in v4: > - No change > >Changes in v3: > - No change > >Changes in v2: > - New patch > > drivers/platform/x86/intel/vsec.c | 20 ++++++++++---------- > include/linux/intel_vsec.h | 4 ++-- > 2 files changed, 12 insertions(+), 12 deletions(-) > >diff --git a/drivers/platform/x86/intel/vsec.c >b/drivers/platform/x86/intel/vsec.c >index 46966edca03b..e0096be605d9 100644 >--- a/drivers/platform/x86/intel/vsec.c >+++ b/drivers/platform/x86/intel/vsec.c >@@ -42,7 +42,7 @@ enum vsec_device_state { > }; > > struct vsec_priv { >- struct intel_vsec_platform_info *info; >+ const struct intel_vsec_platform_info *info; > struct device *suppliers[VSEC_FEATURE_COUNT]; > struct oobmsm_plat_info plat_info; > enum vsec_device_state state[VSEC_FEATURE_COUNT]; >@@ -270,7 +270,7 @@ int intel_vsec_add_aux(struct pci_dev *pdev, struct >device *parent, > EXPORT_SYMBOL_NS_GPL(intel_vsec_add_aux, "INTEL_VSEC"); > > static int intel_vsec_add_dev(struct pci_dev *pdev, struct intel_vsec_header >*header, >- struct intel_vsec_platform_info *info, >+ const struct intel_vsec_platform_info *info, > unsigned long cap_id, u64 base_addr) > { > struct intel_vsec_device __free(kfree) *intel_vsec_dev = NULL; >@@ -406,7 +406,7 @@ static int get_cap_id(u32 header_id, unsigned long >*cap_id) > > static int intel_vsec_register_device(struct pci_dev *pdev, > struct intel_vsec_header *header, >- struct intel_vsec_platform_info *info, >+ const struct intel_vsec_platform_info *info, > u64 base_addr) > { > const struct vsec_feature_dependency *consumer_deps; >@@ -452,7 +452,7 @@ static int intel_vsec_register_device(struct pci_dev >*pdev, > } > > static bool intel_vsec_walk_header(struct pci_dev *pdev, >- struct intel_vsec_platform_info *info) >+ const struct intel_vsec_platform_info *info) > { > struct intel_vsec_header **header = info->headers; > bool have_devices = false; >@@ -468,7 +468,7 @@ static bool intel_vsec_walk_header(struct pci_dev >*pdev, > } > > static bool intel_vsec_walk_dvsec(struct pci_dev *pdev, >- struct intel_vsec_platform_info *info) >+ const struct intel_vsec_platform_info *info) > { > bool have_devices = false; > int pos = 0; >@@ -519,7 +519,7 @@ static bool intel_vsec_walk_dvsec(struct pci_dev >*pdev, > } > > static bool intel_vsec_walk_vsec(struct pci_dev *pdev, >- struct intel_vsec_platform_info *info) >+ const struct intel_vsec_platform_info *info) > { > bool have_devices = false; > int pos = 0; >@@ -565,7 +565,7 @@ static bool intel_vsec_walk_vsec(struct pci_dev *pdev, > } > > int intel_vsec_register(struct pci_dev *pdev, >- struct intel_vsec_platform_info *info) >+ const struct intel_vsec_platform_info *info) > { > if (!pdev || !info || !info->headers) > return -EINVAL; >@@ -578,7 +578,7 @@ int intel_vsec_register(struct pci_dev *pdev, > EXPORT_SYMBOL_NS_GPL(intel_vsec_register, "INTEL_VSEC"); > > static bool intel_vsec_get_features(struct pci_dev *pdev, >- struct intel_vsec_platform_info *info) >+ const struct intel_vsec_platform_info *info) > { > bool found = false; > >@@ -622,7 +622,7 @@ static void >intel_vsec_skip_missing_dependencies(struct pci_dev *pdev) > > static int intel_vsec_pci_probe(struct pci_dev *pdev, const struct pci_device_id >*id) > { >- struct intel_vsec_platform_info *info; >+ const struct intel_vsec_platform_info *info; > struct vsec_priv *priv; > int num_caps, ret; > int run_once = 0; >@@ -633,7 +633,7 @@ static int intel_vsec_pci_probe(struct pci_dev *pdev, >const struct pci_device_id > return ret; > > pci_save_state(pdev); >- info = (struct intel_vsec_platform_info *)id->driver_data; >+ info = (const struct intel_vsec_platform_info *)id->driver_data; > if (!info) > return -EINVAL; > >diff --git a/include/linux/intel_vsec.h b/include/linux/intel_vsec.h >index 1a0f357c2427..d551174b0049 100644 >--- a/include/linux/intel_vsec.h >+++ b/include/linux/intel_vsec.h >@@ -200,13 +200,13 @@ static inline struct intel_vsec_device >*auxdev_to_ivdev(struct auxiliary_device > > #if IS_ENABLED(CONFIG_INTEL_VSEC) > int intel_vsec_register(struct pci_dev *pdev, >- struct intel_vsec_platform_info *info); >+ const struct intel_vsec_platform_info *info); > int intel_vsec_set_mapping(struct oobmsm_plat_info *plat_info, > struct intel_vsec_device *vsec_dev); > struct oobmsm_plat_info *intel_vsec_get_mapping(struct pci_dev *pdev); > #else > static inline int intel_vsec_register(struct pci_dev *pdev, >- struct intel_vsec_platform_info *info) >+ const struct intel_vsec_platform_info *info) > { > return -ENODEV; > } >-- >2.43.0 ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v7 3/6] platform/x86/intel/vsec: Decouple add/link helpers from PCI 2026-03-03 5:19 [PATCH v7 0/6] platform/x86/intel/vsec: Prep for ACPI PMT discovery David E. Box 2026-03-03 5:19 ` [PATCH v7 1/6] platform/x86/intel/vsec: Refactor base_addr handling David E. Box 2026-03-03 5:19 ` [PATCH v7 2/6] platform/x86/intel/vsec: Make driver_data info const David E. Box @ 2026-03-03 5:19 ` David E. Box 2026-03-04 20:15 ` Ruhl, Michael J 2026-03-03 5:19 ` [PATCH v7 4/6] platform/x86/intel/vsec: Switch exported helpers from pci_dev to device David E. Box ` (5 subsequent siblings) 8 siblings, 1 reply; 13+ messages in thread From: David E. Box @ 2026-03-03 5:19 UTC (permalink / raw) To: thomas.hellstrom, rodrigo.vivi, irenic.rajneesh, ilpo.jarvinen, srinivas.pandruvada, intel-xe, dri-devel, xi.pardee Cc: david.e.box, hansg, linux-kernel, platform-driver-x86 This refactor is prepares for adding ACPI-enumerated PMT endpoints. While intel_vsec is bound to PCI today, some helpers are used by code that will also register PMT endpoints from non-PCI (ACPI) paths. Clean up PCI-specific plumbing where it isn’t strictly required and rely on generic struct device where possible. Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: David E. Box <david.e.box@linux.intel.com> --- Changes in v7: - Correct the remaining struct device * argument to intel_vsec_add_aux(). When dropping the unused first argument in v6, the device parameter was inadvertently changed from &vsec_dev->auxdev.dev to the PCI device. Restore the aux device. Changes in v6: - No change Changes in v5: - No change Changes in v4: - No change Changes in v3: - No change Changes in v2: - No change (previous patch 1) drivers/platform/x86/intel/vsec.c | 13 +++++++++---- drivers/platform/x86/intel/vsec_tpmi.c | 2 +- include/linux/intel_vsec.h | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/drivers/platform/x86/intel/vsec.c b/drivers/platform/x86/intel/vsec.c index e0096be605d9..938648b9ef09 100644 --- a/drivers/platform/x86/intel/vsec.c +++ b/drivers/platform/x86/intel/vsec.c @@ -158,18 +158,23 @@ static bool vsec_driver_present(int cap_id) */ static const struct pci_device_id intel_vsec_pci_ids[]; -static int intel_vsec_link_devices(struct pci_dev *pdev, struct device *dev, +static int intel_vsec_link_devices(struct device *parent, struct device *dev, int consumer_id) { const struct vsec_feature_dependency *deps; enum vsec_device_state *state; struct device **suppliers; struct vsec_priv *priv; + struct pci_dev *pdev; int supplier_id; if (!consumer_id) return 0; + if (!dev_is_pci(parent)) + return 0; + + pdev = to_pci_dev(parent); if (!pci_match_id(intel_vsec_pci_ids, pdev)) return 0; @@ -204,7 +209,7 @@ static int intel_vsec_link_devices(struct pci_dev *pdev, struct device *dev, return 0; } -int intel_vsec_add_aux(struct pci_dev *pdev, struct device *parent, +int intel_vsec_add_aux(struct device *parent, struct intel_vsec_device *intel_vsec_dev, const char *name) { @@ -252,7 +257,7 @@ int intel_vsec_add_aux(struct pci_dev *pdev, struct device *parent, if (ret) goto cleanup_aux; - ret = intel_vsec_link_devices(pdev, &auxdev->dev, intel_vsec_dev->cap_id); + ret = intel_vsec_link_devices(parent, &auxdev->dev, intel_vsec_dev->cap_id); if (ret) goto cleanup_aux; @@ -343,7 +348,7 @@ static int intel_vsec_add_dev(struct pci_dev *pdev, struct intel_vsec_header *he * Pass the ownership of intel_vsec_dev and resource within it to * intel_vsec_add_aux() */ - return intel_vsec_add_aux(pdev, parent, no_free_ptr(intel_vsec_dev), + return intel_vsec_add_aux(parent, no_free_ptr(intel_vsec_dev), intel_vsec_name(header->id)); } diff --git a/drivers/platform/x86/intel/vsec_tpmi.c b/drivers/platform/x86/intel/vsec_tpmi.c index 98846e88d3d0..2298b6361094 100644 --- a/drivers/platform/x86/intel/vsec_tpmi.c +++ b/drivers/platform/x86/intel/vsec_tpmi.c @@ -655,7 +655,7 @@ static int tpmi_create_device(struct intel_tpmi_info *tpmi_info, * feature_vsec_dev and res memory are also freed as part of * device deletion. */ - return intel_vsec_add_aux(vsec_dev->pcidev, &vsec_dev->auxdev.dev, + return intel_vsec_add_aux(&vsec_dev->auxdev.dev, feature_vsec_dev, feature_id_name); } diff --git a/include/linux/intel_vsec.h b/include/linux/intel_vsec.h index d551174b0049..49a746ec0128 100644 --- a/include/linux/intel_vsec.h +++ b/include/linux/intel_vsec.h @@ -184,7 +184,7 @@ struct pmt_feature_group { struct telemetry_region regions[]; }; -int intel_vsec_add_aux(struct pci_dev *pdev, struct device *parent, +int intel_vsec_add_aux(struct device *parent, struct intel_vsec_device *intel_vsec_dev, const char *name); -- 2.43.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* RE: [PATCH v7 3/6] platform/x86/intel/vsec: Decouple add/link helpers from PCI 2026-03-03 5:19 ` [PATCH v7 3/6] platform/x86/intel/vsec: Decouple add/link helpers from PCI David E. Box @ 2026-03-04 20:15 ` Ruhl, Michael J 0 siblings, 0 replies; 13+ messages in thread From: Ruhl, Michael J @ 2026-03-04 20:15 UTC (permalink / raw) To: David E. Box, thomas.hellstrom@linux.intel.com, Vivi, Rodrigo, irenic.rajneesh@gmail.com, ilpo.jarvinen@linux.intel.com, srinivas.pandruvada@linux.intel.com, intel-xe@lists.freedesktop.org, dri-devel@lists.freedesktop.org, xi.pardee@linux.intel.com Cc: hansg@kernel.org, linux-kernel@vger.kernel.org, platform-driver-x86@vger.kernel.org >-----Original Message----- >From: dri-devel <dri-devel-bounces@lists.freedesktop.org> On Behalf Of David >E. Box >Sent: Tuesday, March 3, 2026 12:20 AM >To: thomas.hellstrom@linux.intel.com; Vivi, Rodrigo <rodrigo.vivi@intel.com>; >irenic.rajneesh@gmail.com; ilpo.jarvinen@linux.intel.com; >srinivas.pandruvada@linux.intel.com; intel-xe@lists.freedesktop.org; dri- >devel@lists.freedesktop.org; xi.pardee@linux.intel.com >Cc: david.e.box@linux.intel.com; hansg@kernel.org; linux- >kernel@vger.kernel.org; platform-driver-x86@vger.kernel.org >Subject: [PATCH v7 3/6] platform/x86/intel/vsec: Decouple add/link helpers >from PCI > >This refactor is prepares for adding ACPI-enumerated PMT endpoints. While >intel_vsec is bound to PCI today, some helpers are used by code that will >also register PMT endpoints from non-PCI (ACPI) paths. Clean up >PCI-specific plumbing where it isn’t strictly required and rely on >generic struct device where possible. > >Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> >Signed-off-by: David E. Box <david.e.box@linux.intel.com> >--- >Changes in v7: > - Correct the remaining struct device * argument to intel_vsec_add_aux(). > When dropping the unused first argument in v6, the device parameter was > inadvertently changed from &vsec_dev->auxdev.dev to the PCI device. > Restore the aux device. > >Changes in v6: > - No change > >Changes in v5: > - No change > >Changes in v4: > - No change > >Changes in v3: > - No change > >Changes in v2: > - No change (previous patch 1) > > drivers/platform/x86/intel/vsec.c | 13 +++++++++---- > drivers/platform/x86/intel/vsec_tpmi.c | 2 +- > include/linux/intel_vsec.h | 2 +- > 3 files changed, 11 insertions(+), 6 deletions(-) > >diff --git a/drivers/platform/x86/intel/vsec.c >b/drivers/platform/x86/intel/vsec.c >index e0096be605d9..938648b9ef09 100644 >--- a/drivers/platform/x86/intel/vsec.c >+++ b/drivers/platform/x86/intel/vsec.c >@@ -158,18 +158,23 @@ static bool vsec_driver_present(int cap_id) > */ > static const struct pci_device_id intel_vsec_pci_ids[]; > >-static int intel_vsec_link_devices(struct pci_dev *pdev, struct device *dev, >+static int intel_vsec_link_devices(struct device *parent, struct device *dev, > int consumer_id) This functionality is explicitly for pci devices? would intel_vsec_pci_link_devices() (or something similar) be a better name? Regardless, Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com> M > { > const struct vsec_feature_dependency *deps; > enum vsec_device_state *state; > struct device **suppliers; > struct vsec_priv *priv; >+ struct pci_dev *pdev; > int supplier_id; > > if (!consumer_id) > return 0; > >+ if (!dev_is_pci(parent)) >+ return 0; >+ >+ pdev = to_pci_dev(parent); > if (!pci_match_id(intel_vsec_pci_ids, pdev)) > return 0; > >@@ -204,7 +209,7 @@ static int intel_vsec_link_devices(struct pci_dev *pdev, >struct device *dev, > return 0; > } > >-int intel_vsec_add_aux(struct pci_dev *pdev, struct device *parent, >+int intel_vsec_add_aux(struct device *parent, > struct intel_vsec_device *intel_vsec_dev, > const char *name) > { >@@ -252,7 +257,7 @@ int intel_vsec_add_aux(struct pci_dev *pdev, struct >device *parent, > if (ret) > goto cleanup_aux; > >- ret = intel_vsec_link_devices(pdev, &auxdev->dev, intel_vsec_dev- >>cap_id); >+ ret = intel_vsec_link_devices(parent, &auxdev->dev, intel_vsec_dev- >>cap_id); > if (ret) > goto cleanup_aux; > >@@ -343,7 +348,7 @@ static int intel_vsec_add_dev(struct pci_dev *pdev, >struct intel_vsec_header *he > * Pass the ownership of intel_vsec_dev and resource within it to > * intel_vsec_add_aux() > */ >- return intel_vsec_add_aux(pdev, parent, no_free_ptr(intel_vsec_dev), >+ return intel_vsec_add_aux(parent, no_free_ptr(intel_vsec_dev), > intel_vsec_name(header->id)); > } > >diff --git a/drivers/platform/x86/intel/vsec_tpmi.c >b/drivers/platform/x86/intel/vsec_tpmi.c >index 98846e88d3d0..2298b6361094 100644 >--- a/drivers/platform/x86/intel/vsec_tpmi.c >+++ b/drivers/platform/x86/intel/vsec_tpmi.c >@@ -655,7 +655,7 @@ static int tpmi_create_device(struct intel_tpmi_info >*tpmi_info, > * feature_vsec_dev and res memory are also freed as part of > * device deletion. > */ >- return intel_vsec_add_aux(vsec_dev->pcidev, &vsec_dev->auxdev.dev, >+ return intel_vsec_add_aux(&vsec_dev->auxdev.dev, > feature_vsec_dev, feature_id_name); > } > >diff --git a/include/linux/intel_vsec.h b/include/linux/intel_vsec.h >index d551174b0049..49a746ec0128 100644 >--- a/include/linux/intel_vsec.h >+++ b/include/linux/intel_vsec.h >@@ -184,7 +184,7 @@ struct pmt_feature_group { > struct telemetry_region regions[]; > }; > >-int intel_vsec_add_aux(struct pci_dev *pdev, struct device *parent, >+int intel_vsec_add_aux(struct device *parent, > struct intel_vsec_device *intel_vsec_dev, > const char *name); > >-- >2.43.0 ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v7 4/6] platform/x86/intel/vsec: Switch exported helpers from pci_dev to device 2026-03-03 5:19 [PATCH v7 0/6] platform/x86/intel/vsec: Prep for ACPI PMT discovery David E. Box ` (2 preceding siblings ...) 2026-03-03 5:19 ` [PATCH v7 3/6] platform/x86/intel/vsec: Decouple add/link helpers from PCI David E. Box @ 2026-03-03 5:19 ` David E. Box 2026-03-03 5:19 ` [PATCH v7 5/6] platform/x86/intel/vsec: Return real error codes from registration path David E. Box ` (4 subsequent siblings) 8 siblings, 0 replies; 13+ messages in thread From: David E. Box @ 2026-03-03 5:19 UTC (permalink / raw) To: thomas.hellstrom, rodrigo.vivi, irenic.rajneesh, ilpo.jarvinen, srinivas.pandruvada, intel-xe, dri-devel, xi.pardee Cc: david.e.box, hansg, linux-kernel, platform-driver-x86 Preparatory refactor for ACPI-enumerated PMT endpoints. Several exported PMT/VSEC interfaces and structs carried struct pci_dev * even though callers only need a generic struct device. Move those to struct device * so the same APIs work for PCI and ACPI parents. Acked-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: David E. Box <david.e.box@linux.intel.com> --- Changes in v7: - Drop the change in this patch that converted the intel_vsec_add_aux() device argument to vsec_dev->dev (PCI device). Patch 3 fixes a prior regression where the argument was mistakenly changed from the auxdev device to the PCI device. Keep the auxdev (&vsec_dev->auxdev.dev) as intended. Changes in v6: - No change Changes in v5: - xe_vsec.h: Remove forward declaration for pci_dev and add for device Changes in v4: - No change Changes in v3: - No change Changes in v2: - Add forward declarations for struct device in class.h, telemetry.h - Restore struct pci_dev forward declaration in intel_vsec.h that was removed - Remove base_addr parameter changes (moved to separate patch) - Remove erroneous hunk in intel_vsec_pci_probe() (review comments by Ilpo Järvinen) drivers/gpu/drm/xe/xe_debugfs.c | 2 +- drivers/gpu/drm/xe/xe_hwmon.c | 2 +- drivers/gpu/drm/xe/xe_vsec.c | 7 ++- drivers/gpu/drm/xe/xe_vsec.h | 4 +- drivers/platform/x86/intel/pmc/core.c | 4 +- .../platform/x86/intel/pmc/ssram_telemetry.c | 2 +- drivers/platform/x86/intel/pmt/class.c | 8 ++-- drivers/platform/x86/intel/pmt/class.h | 5 ++- drivers/platform/x86/intel/pmt/discovery.c | 4 +- drivers/platform/x86/intel/pmt/telemetry.c | 13 +++--- drivers/platform/x86/intel/pmt/telemetry.h | 12 ++--- drivers/platform/x86/intel/sdsi.c | 5 ++- drivers/platform/x86/intel/vsec.c | 44 +++++++++++-------- drivers/platform/x86/intel/vsec_tpmi.c | 6 +-- include/linux/intel_vsec.h | 13 +++--- 15 files changed, 71 insertions(+), 60 deletions(-) diff --git a/drivers/gpu/drm/xe/xe_debugfs.c b/drivers/gpu/drm/xe/xe_debugfs.c index 844cfafe1ec7..ad2d8f179eb6 100644 --- a/drivers/gpu/drm/xe/xe_debugfs.c +++ b/drivers/gpu/drm/xe/xe_debugfs.c @@ -45,7 +45,7 @@ static void read_residency_counter(struct xe_device *xe, struct xe_mmio *mmio, u64 residency = 0; int ret; - ret = xe_pmt_telem_read(to_pci_dev(xe->drm.dev), + ret = xe_pmt_telem_read(xe->drm.dev, xe_mmio_read32(mmio, PUNIT_TELEMETRY_GUID), &residency, offset, sizeof(residency)); if (ret != sizeof(residency)) { diff --git a/drivers/gpu/drm/xe/xe_hwmon.c b/drivers/gpu/drm/xe/xe_hwmon.c index 0fd4d4f1014a..92e423a339f1 100644 --- a/drivers/gpu/drm/xe/xe_hwmon.c +++ b/drivers/gpu/drm/xe/xe_hwmon.c @@ -506,7 +506,7 @@ xe_hwmon_energy_get(struct xe_hwmon *hwmon, int channel, long *energy) if (hwmon->xe->info.platform == XE_BATTLEMAGE) { u64 pmt_val; - ret = xe_pmt_telem_read(to_pci_dev(hwmon->xe->drm.dev), + ret = xe_pmt_telem_read(hwmon->xe->drm.dev, xe_mmio_read32(mmio, PUNIT_TELEMETRY_GUID), &pmt_val, BMG_ENERGY_STATUS_PMT_OFFSET, sizeof(pmt_val)); if (ret != sizeof(pmt_val)) { diff --git a/drivers/gpu/drm/xe/xe_vsec.c b/drivers/gpu/drm/xe/xe_vsec.c index 4ebb4dbe1c9b..a9baf0bfe572 100644 --- a/drivers/gpu/drm/xe/xe_vsec.c +++ b/drivers/gpu/drm/xe/xe_vsec.c @@ -140,10 +140,10 @@ static int xe_guid_decode(u32 guid, int *index, u32 *offset) return 0; } -int xe_pmt_telem_read(struct pci_dev *pdev, u32 guid, u64 *data, loff_t user_offset, +int xe_pmt_telem_read(struct device *dev, u32 guid, u64 *data, loff_t user_offset, u32 count) { - struct xe_device *xe = pdev_to_xe_device(pdev); + struct xe_device *xe = kdev_to_xe_device(dev); void __iomem *telem_addr = xe->mmio.regs + BMG_TELEMETRY_OFFSET; u32 mem_region; u32 offset; @@ -198,7 +198,6 @@ void xe_vsec_init(struct xe_device *xe) { struct intel_vsec_platform_info *info; struct device *dev = xe->drm.dev; - struct pci_dev *pdev = to_pci_dev(dev); enum xe_vsec platform; platform = get_platform_info(xe); @@ -221,6 +220,6 @@ void xe_vsec_init(struct xe_device *xe) * Register a VSEC. Cleanup is handled using device managed * resources. */ - intel_vsec_register(pdev, info); + intel_vsec_register(dev, info); } MODULE_IMPORT_NS("INTEL_VSEC"); diff --git a/drivers/gpu/drm/xe/xe_vsec.h b/drivers/gpu/drm/xe/xe_vsec.h index dabfb4e02d70..a25b4e6e681b 100644 --- a/drivers/gpu/drm/xe/xe_vsec.h +++ b/drivers/gpu/drm/xe/xe_vsec.h @@ -6,10 +6,10 @@ #include <linux/types.h> -struct pci_dev; +struct device; struct xe_device; void xe_vsec_init(struct xe_device *xe); -int xe_pmt_telem_read(struct pci_dev *pdev, u32 guid, u64 *data, loff_t user_offset, u32 count); +int xe_pmt_telem_read(struct device *dev, u32 guid, u64 *data, loff_t user_offset, u32 count); #endif diff --git a/drivers/platform/x86/intel/pmc/core.c b/drivers/platform/x86/intel/pmc/core.c index 02b303418d18..d91e1ab842d6 100644 --- a/drivers/platform/x86/intel/pmc/core.c +++ b/drivers/platform/x86/intel/pmc/core.c @@ -1315,7 +1315,7 @@ static struct telem_endpoint *pmc_core_register_endpoint(struct pci_dev *pcidev, unsigned int i; for (i = 0; guids[i]; i++) { - ep = pmt_telem_find_and_register_endpoint(pcidev, guids[i], 0); + ep = pmt_telem_find_and_register_endpoint(&pcidev->dev, guids[i], 0); if (!IS_ERR(ep)) return ep; } @@ -1600,7 +1600,7 @@ static int pmc_core_get_telem_info(struct pmc_dev *pmcdev, struct pmc_dev_info * if (!pmc->map->lpm_req_guid) return -ENXIO; - ep = pmt_telem_find_and_register_endpoint(pcidev, pmc->map->lpm_req_guid, 0); + ep = pmt_telem_find_and_register_endpoint(&pcidev->dev, pmc->map->lpm_req_guid, 0); if (IS_ERR(ep)) { dev_dbg(&pmcdev->pdev->dev, "couldn't get telem endpoint %pe", ep); return -EPROBE_DEFER; diff --git a/drivers/platform/x86/intel/pmc/ssram_telemetry.c b/drivers/platform/x86/intel/pmc/ssram_telemetry.c index 03fad9331fc0..6f6e83e70fc5 100644 --- a/drivers/platform/x86/intel/pmc/ssram_telemetry.c +++ b/drivers/platform/x86/intel/pmc/ssram_telemetry.c @@ -60,7 +60,7 @@ pmc_ssram_telemetry_add_pmt(struct pci_dev *pcidev, u64 ssram_base, void __iomem info.base_addr = ssram_base; info.parent = &pcidev->dev; - return intel_vsec_register(pcidev, &info); + return intel_vsec_register(&pcidev->dev, &info); } static inline u64 get_base(void __iomem *addr, u32 offset) diff --git a/drivers/platform/x86/intel/pmt/class.c b/drivers/platform/x86/intel/pmt/class.c index be3c8d9e4fff..b4c9964df807 100644 --- a/drivers/platform/x86/intel/pmt/class.c +++ b/drivers/platform/x86/intel/pmt/class.c @@ -60,11 +60,11 @@ pmt_memcpy64_fromio(void *to, const u64 __iomem *from, size_t count) return count; } -int pmt_telem_read_mmio(struct pci_dev *pdev, struct pmt_callbacks *cb, u32 guid, void *buf, +int pmt_telem_read_mmio(struct device *dev, struct pmt_callbacks *cb, u32 guid, void *buf, void __iomem *addr, loff_t off, u32 count) { if (cb && cb->read_telem) - return cb->read_telem(pdev, guid, buf, off, count); + return cb->read_telem(dev, guid, buf, off, count); addr += off; @@ -99,7 +99,7 @@ intel_pmt_read(struct file *filp, struct kobject *kobj, if (count > entry->size - off) count = entry->size - off; - count = pmt_telem_read_mmio(entry->pcidev, entry->cb, entry->header.guid, buf, + count = pmt_telem_read_mmio(entry->ep->dev, entry->cb, entry->header.guid, buf, entry->base, off, count); return count; @@ -208,7 +208,7 @@ static int intel_pmt_populate_entry(struct intel_pmt_entry *entry, struct intel_vsec_device *ivdev, struct resource *disc_res) { - struct pci_dev *pci_dev = ivdev->pcidev; + struct pci_dev *pci_dev = to_pci_dev(ivdev->dev); struct device *dev = &ivdev->auxdev.dev; struct intel_pmt_header *header = &entry->header; u8 bir; diff --git a/drivers/platform/x86/intel/pmt/class.h b/drivers/platform/x86/intel/pmt/class.h index 3c5ad5f52bca..1ae56a5baad2 100644 --- a/drivers/platform/x86/intel/pmt/class.h +++ b/drivers/platform/x86/intel/pmt/class.h @@ -19,11 +19,12 @@ #define GET_BIR(v) ((v) & GENMASK(2, 0)) #define GET_ADDRESS(v) ((v) & GENMASK(31, 3)) +struct device; struct pci_dev; extern struct class intel_pmt_class; struct telem_endpoint { - struct pci_dev *pcidev; + struct device *dev; struct telem_header header; struct pmt_callbacks *cb; void __iomem *base; @@ -65,7 +66,7 @@ struct intel_pmt_namespace { struct intel_pmt_entry *entry); }; -int pmt_telem_read_mmio(struct pci_dev *pdev, struct pmt_callbacks *cb, u32 guid, void *buf, +int pmt_telem_read_mmio(struct device *dev, struct pmt_callbacks *cb, u32 guid, void *buf, void __iomem *addr, loff_t off, u32 count); bool intel_pmt_is_early_client_hw(struct device *dev); int intel_pmt_dev_create(struct intel_pmt_entry *entry, diff --git a/drivers/platform/x86/intel/pmt/discovery.c b/drivers/platform/x86/intel/pmt/discovery.c index e500aa327d23..c482368bfaae 100644 --- a/drivers/platform/x86/intel/pmt/discovery.c +++ b/drivers/platform/x86/intel/pmt/discovery.c @@ -542,7 +542,7 @@ static int pmt_features_probe(struct auxiliary_device *auxdev, const struct auxi if (!priv) return -ENOMEM; - priv->parent = &ivdev->pcidev->dev; + priv->parent = ivdev->dev; auxiliary_set_drvdata(auxdev, priv); priv->dev = device_create(&intel_pmt_class, &auxdev->dev, MKDEV(0, 0), priv, @@ -609,7 +609,7 @@ void intel_pmt_get_features(struct intel_pmt_entry *entry) mutex_lock(&feature_list_lock); list_for_each_entry(feature, &pmt_feature_list, list) { - if (feature->priv->parent != &entry->ep->pcidev->dev) + if (feature->priv->parent != entry->ep->dev) continue; pmt_get_features(entry, feature); diff --git a/drivers/platform/x86/intel/pmt/telemetry.c b/drivers/platform/x86/intel/pmt/telemetry.c index a52803bfe124..bdc7c24a3678 100644 --- a/drivers/platform/x86/intel/pmt/telemetry.c +++ b/drivers/platform/x86/intel/pmt/telemetry.c @@ -112,7 +112,7 @@ static int pmt_telem_add_endpoint(struct intel_vsec_device *ivdev, return -ENOMEM; ep = entry->ep; - ep->pcidev = ivdev->pcidev; + ep->dev = ivdev->dev; ep->header.access_type = entry->header.access_type; ep->header.guid = entry->header.guid; ep->header.base_offset = entry->header.base_offset; @@ -204,7 +204,7 @@ int pmt_telem_get_endpoint_info(int devid, struct telem_endpoint_info *info) goto unlock; } - info->pdev = entry->ep->pcidev; + info->dev = entry->ep->dev; info->header = entry->ep->header; unlock: @@ -218,9 +218,10 @@ static int pmt_copy_region(struct telemetry_region *region, struct intel_pmt_entry *entry) { + struct pci_dev *pdev = to_pci_dev(entry->ep->dev); struct oobmsm_plat_info *plat_info; - plat_info = intel_vsec_get_mapping(entry->ep->pcidev); + plat_info = intel_vsec_get_mapping(pdev); if (IS_ERR(plat_info)) return PTR_ERR(plat_info); @@ -308,7 +309,7 @@ int pmt_telem_read(struct telem_endpoint *ep, u32 id, u64 *data, u32 count) if (offset + NUM_BYTES_QWORD(count) > size) return -EINVAL; - pmt_telem_read_mmio(ep->pcidev, ep->cb, ep->header.guid, data, ep->base, offset, + pmt_telem_read_mmio(ep->dev, ep->cb, ep->header.guid, data, ep->base, offset, NUM_BYTES_QWORD(count)); return ep->present ? 0 : -EPIPE; @@ -335,7 +336,7 @@ int pmt_telem_read32(struct telem_endpoint *ep, u32 id, u32 *data, u32 count) EXPORT_SYMBOL_NS_GPL(pmt_telem_read32, "INTEL_PMT_TELEMETRY"); struct telem_endpoint * -pmt_telem_find_and_register_endpoint(struct pci_dev *pcidev, u32 guid, u16 pos) +pmt_telem_find_and_register_endpoint(struct device *dev, u32 guid, u16 pos) { int devid = 0; int inst = 0; @@ -348,7 +349,7 @@ pmt_telem_find_and_register_endpoint(struct pci_dev *pcidev, u32 guid, u16 pos) if (err) return ERR_PTR(err); - if (ep_info.header.guid == guid && ep_info.pdev == pcidev) { + if (ep_info.header.guid == guid && ep_info.dev == dev) { if (inst == pos) return pmt_telem_register_endpoint(devid); ++inst; diff --git a/drivers/platform/x86/intel/pmt/telemetry.h b/drivers/platform/x86/intel/pmt/telemetry.h index d45af5512b4e..0f88c5e7d90e 100644 --- a/drivers/platform/x86/intel/pmt/telemetry.h +++ b/drivers/platform/x86/intel/pmt/telemetry.h @@ -6,8 +6,8 @@ #define PMT_TELEM_TELEMETRY 0 #define PMT_TELEM_CRASHLOG 1 +struct device; struct telem_endpoint; -struct pci_dev; struct telem_header { u8 access_type; @@ -17,7 +17,7 @@ struct telem_header { }; struct telem_endpoint_info { - struct pci_dev *pdev; + struct device *dev; struct telem_header header; }; @@ -71,8 +71,8 @@ int pmt_telem_get_endpoint_info(int devid, struct telem_endpoint_info *info); /** * pmt_telem_find_and_register_endpoint() - Get a telemetry endpoint from - * pci_dev device, guid and pos - * @pdev: PCI device inside the Intel vsec + * device, guid and pos + * @dev: device inside the Intel vsec * @guid: GUID of the telemetry space * @pos: Instance of the guid * @@ -80,8 +80,8 @@ int pmt_telem_get_endpoint_info(int devid, struct telem_endpoint_info *info); * * endpoint - On success returns pointer to the telemetry endpoint * * -ENXIO - telemetry endpoint not found */ -struct telem_endpoint *pmt_telem_find_and_register_endpoint(struct pci_dev *pcidev, - u32 guid, u16 pos); +struct telem_endpoint * +pmt_telem_find_and_register_endpoint(struct device *dev, u32 guid, u16 pos); /** * pmt_telem_read() - Read qwords from counter sram using sample id diff --git a/drivers/platform/x86/intel/sdsi.c b/drivers/platform/x86/intel/sdsi.c index da75f53d0bcc..d7e37d4ace23 100644 --- a/drivers/platform/x86/intel/sdsi.c +++ b/drivers/platform/x86/intel/sdsi.c @@ -599,13 +599,14 @@ static int sdsi_get_layout(struct sdsi_priv *priv, struct disc_table *table) return 0; } -static int sdsi_map_mbox_registers(struct sdsi_priv *priv, struct pci_dev *parent, +static int sdsi_map_mbox_registers(struct sdsi_priv *priv, struct device *dev, struct disc_table *disc_table, struct resource *disc_res) { u32 access_type = FIELD_GET(DT_ACCESS_TYPE, disc_table->access_info); u32 size = FIELD_GET(DT_SIZE, disc_table->access_info); u32 tbir = FIELD_GET(DT_TBIR, disc_table->offset); u32 offset = DT_OFFSET(disc_table->offset); + struct pci_dev *parent = to_pci_dev(dev); struct resource res = {}; /* Starting location of SDSi MMIO region based on access type */ @@ -681,7 +682,7 @@ static int sdsi_probe(struct auxiliary_device *auxdev, const struct auxiliary_de return ret; /* Map the SDSi mailbox registers */ - ret = sdsi_map_mbox_registers(priv, intel_cap_dev->pcidev, &disc_table, disc_res); + ret = sdsi_map_mbox_registers(priv, intel_cap_dev->dev, &disc_table, disc_res); if (ret) return ret; diff --git a/drivers/platform/x86/intel/vsec.c b/drivers/platform/x86/intel/vsec.c index 938648b9ef09..a547e4b98245 100644 --- a/drivers/platform/x86/intel/vsec.c +++ b/drivers/platform/x86/intel/vsec.c @@ -274,7 +274,7 @@ int intel_vsec_add_aux(struct device *parent, } EXPORT_SYMBOL_NS_GPL(intel_vsec_add_aux, "INTEL_VSEC"); -static int intel_vsec_add_dev(struct pci_dev *pdev, struct intel_vsec_header *header, +static int intel_vsec_add_dev(struct device *dev, struct intel_vsec_header *header, const struct intel_vsec_platform_info *info, unsigned long cap_id, u64 base_addr) { @@ -288,18 +288,18 @@ static int intel_vsec_add_dev(struct pci_dev *pdev, struct intel_vsec_header *he if (info->parent) parent = info->parent; else - parent = &pdev->dev; + parent = dev; if (!intel_vsec_supported(header->id, info->caps)) return -EINVAL; if (!header->num_entries) { - dev_dbg(&pdev->dev, "Invalid 0 entry count for header id %d\n", header->id); + dev_dbg(dev, "Invalid 0 entry count for header id %d\n", header->id); return -EINVAL; } if (!header->entry_size) { - dev_dbg(&pdev->dev, "Invalid 0 entry size for header id %d\n", header->id); + dev_dbg(dev, "Invalid 0 entry size for header id %d\n", header->id); return -EINVAL; } @@ -331,7 +331,7 @@ static int intel_vsec_add_dev(struct pci_dev *pdev, struct intel_vsec_header *he release_mem_region(tmp->start, resource_size(tmp)); } - intel_vsec_dev->pcidev = pdev; + intel_vsec_dev->dev = dev; intel_vsec_dev->resource = no_free_ptr(res); intel_vsec_dev->num_resources = header->num_entries; intel_vsec_dev->quirks = info->quirks; @@ -409,13 +409,14 @@ static int get_cap_id(u32 header_id, unsigned long *cap_id) return 0; } -static int intel_vsec_register_device(struct pci_dev *pdev, +static int intel_vsec_register_device(struct device *dev, struct intel_vsec_header *header, const struct intel_vsec_platform_info *info, u64 base_addr) { const struct vsec_feature_dependency *consumer_deps; struct vsec_priv *priv; + struct pci_dev *pdev; unsigned long cap_id; int ret; @@ -427,8 +428,12 @@ static int intel_vsec_register_device(struct pci_dev *pdev, * Only track dependencies for devices probed by the VSEC driver. * For others using the exported APIs, add the device directly. */ + if (!dev_is_pci(dev)) + return intel_vsec_add_dev(dev, header, info, cap_id, base_addr); + + pdev = to_pci_dev(dev); if (!pci_match_id(intel_vsec_pci_ids, pdev)) - return intel_vsec_add_dev(pdev, header, info, cap_id, base_addr); + return intel_vsec_add_dev(dev, header, info, cap_id, base_addr); priv = pci_get_drvdata(pdev); if (priv->state[cap_id] == STATE_REGISTERED || @@ -444,7 +449,7 @@ static int intel_vsec_register_device(struct pci_dev *pdev, consumer_deps = get_consumer_dependencies(priv, cap_id); if (!consumer_deps || suppliers_ready(priv, consumer_deps, cap_id)) { - ret = intel_vsec_add_dev(pdev, header, info, cap_id, base_addr); + ret = intel_vsec_add_dev(dev, header, info, cap_id, base_addr); if (ret) priv->state[cap_id] = STATE_SKIP; else @@ -456,7 +461,7 @@ static int intel_vsec_register_device(struct pci_dev *pdev, return -EAGAIN; } -static bool intel_vsec_walk_header(struct pci_dev *pdev, +static bool intel_vsec_walk_header(struct device *dev, const struct intel_vsec_platform_info *info) { struct intel_vsec_header **header = info->headers; @@ -464,7 +469,7 @@ static bool intel_vsec_walk_header(struct pci_dev *pdev, int ret; for ( ; *header; header++) { - ret = intel_vsec_register_device(pdev, *header, info, info->base_addr); + ret = intel_vsec_register_device(dev, *header, info, info->base_addr); if (!ret) have_devices = true; } @@ -512,7 +517,7 @@ static bool intel_vsec_walk_dvsec(struct pci_dev *pdev, pci_read_config_dword(pdev, pos + PCI_DVSEC_HEADER2, &hdr); header.id = PCI_DVSEC_HEADER2_ID(hdr); - ret = intel_vsec_register_device(pdev, &header, info, + ret = intel_vsec_register_device(&pdev->dev, &header, info, pci_resource_start(pdev, header.tbir)); if (ret) continue; @@ -558,7 +563,7 @@ static bool intel_vsec_walk_vsec(struct pci_dev *pdev, header.tbir = INTEL_DVSEC_TABLE_BAR(table); header.offset = INTEL_DVSEC_TABLE_OFFSET(table); - ret = intel_vsec_register_device(pdev, &header, info, + ret = intel_vsec_register_device(&pdev->dev, &header, info, pci_resource_start(pdev, header.tbir)); if (ret) continue; @@ -569,13 +574,13 @@ static bool intel_vsec_walk_vsec(struct pci_dev *pdev, return have_devices; } -int intel_vsec_register(struct pci_dev *pdev, +int intel_vsec_register(struct device *dev, const struct intel_vsec_platform_info *info) { - if (!pdev || !info || !info->headers) + if (!dev || !info || !info->headers) return -EINVAL; - if (!intel_vsec_walk_header(pdev, info)) + if (!intel_vsec_walk_header(dev, info)) return -ENODEV; else return 0; @@ -601,7 +606,7 @@ static bool intel_vsec_get_features(struct pci_dev *pdev, found = true; if (info && (info->quirks & VSEC_QUIRK_NO_DVSEC) && - intel_vsec_walk_header(pdev, info)) + intel_vsec_walk_header(&pdev->dev, info)) found = true; return found; @@ -673,7 +678,10 @@ int intel_vsec_set_mapping(struct oobmsm_plat_info *plat_info, { struct vsec_priv *priv; - priv = pci_get_drvdata(vsec_dev->pcidev); + if (!dev_is_pci(vsec_dev->dev)) + return -ENODEV; + + priv = pci_get_drvdata(to_pci_dev(vsec_dev->dev)); if (!priv) return -EINVAL; @@ -821,7 +829,7 @@ static pci_ers_result_t intel_vsec_pci_slot_reset(struct pci_dev *pdev) xa_for_each(&auxdev_array, index, intel_vsec_dev) { /* check if pdev doesn't match */ - if (pdev != intel_vsec_dev->pcidev) + if (&pdev->dev != intel_vsec_dev->dev) continue; devm_release_action(&pdev->dev, intel_vsec_remove_aux, &intel_vsec_dev->auxdev); diff --git a/drivers/platform/x86/intel/vsec_tpmi.c b/drivers/platform/x86/intel/vsec_tpmi.c index 2298b6361094..9dddf4e5863e 100644 --- a/drivers/platform/x86/intel/vsec_tpmi.c +++ b/drivers/platform/x86/intel/vsec_tpmi.c @@ -530,7 +530,7 @@ static const struct file_operations mem_write_ops = { .release = single_release, }; -#define tpmi_to_dev(info) (&info->vsec_dev->pcidev->dev) +#define tpmi_to_dev(info) ((info)->vsec_dev->dev) static void tpmi_dbgfs_register(struct intel_tpmi_info *tpmi_info) { @@ -642,7 +642,7 @@ static int tpmi_create_device(struct intel_tpmi_info *tpmi_info, tmp->flags = IORESOURCE_MEM; } - feature_vsec_dev->pcidev = vsec_dev->pcidev; + feature_vsec_dev->dev = vsec_dev->dev; feature_vsec_dev->resource = res; feature_vsec_dev->num_resources = pfs->pfs_header.num_entries; feature_vsec_dev->priv_data = &tpmi_info->plat_info; @@ -742,7 +742,7 @@ static int tpmi_fetch_pfs_header(struct intel_tpmi_pm_feature *pfs, u64 start, i static int intel_vsec_tpmi_init(struct auxiliary_device *auxdev) { struct intel_vsec_device *vsec_dev = auxdev_to_ivdev(auxdev); - struct pci_dev *pci_dev = vsec_dev->pcidev; + struct pci_dev *pci_dev = to_pci_dev(vsec_dev->dev); struct intel_tpmi_info *tpmi_info; u64 pfs_start = 0; int ret, i; diff --git a/include/linux/intel_vsec.h b/include/linux/intel_vsec.h index 49a746ec0128..4eecb2a6bac4 100644 --- a/include/linux/intel_vsec.h +++ b/include/linux/intel_vsec.h @@ -29,6 +29,7 @@ #define INTEL_DVSEC_TABLE_OFFSET(x) ((x) & GENMASK(31, 3)) #define TABLE_OFFSET_SHIFT 3 +struct device; struct pci_dev; struct resource; @@ -82,14 +83,14 @@ enum intel_vsec_quirks { * struct pmt_callbacks - Callback infrastructure for PMT devices * @read_telem: when specified, called by client driver to access PMT * data (instead of direct copy). - * * pdev: PCI device reference for the callback's use + * * dev: device reference for the callback's use * * guid: ID of data to acccss * * data: buffer for the data to be copied * * off: offset into the requested buffer * * count: size of buffer */ struct pmt_callbacks { - int (*read_telem)(struct pci_dev *pdev, u32 guid, u64 *data, loff_t off, u32 count); + int (*read_telem)(struct device *dev, u32 guid, u64 *data, loff_t off, u32 count); }; struct vsec_feature_dependency { @@ -122,7 +123,7 @@ struct intel_vsec_platform_info { /** * struct intel_vsec_device - Auxbus specific device information * @auxdev: auxbus device struct for auxbus access - * @pcidev: pci device associated with the device + * @dev: struct device associated with the device * @resource: any resources shared by the parent * @ida: id reference * @num_resources: number of resources @@ -135,7 +136,7 @@ struct intel_vsec_platform_info { */ struct intel_vsec_device { struct auxiliary_device auxdev; - struct pci_dev *pcidev; + struct device *dev; struct resource *resource; struct ida *ida; int num_resources; @@ -199,13 +200,13 @@ static inline struct intel_vsec_device *auxdev_to_ivdev(struct auxiliary_device } #if IS_ENABLED(CONFIG_INTEL_VSEC) -int intel_vsec_register(struct pci_dev *pdev, +int intel_vsec_register(struct device *dev, const struct intel_vsec_platform_info *info); int intel_vsec_set_mapping(struct oobmsm_plat_info *plat_info, struct intel_vsec_device *vsec_dev); struct oobmsm_plat_info *intel_vsec_get_mapping(struct pci_dev *pdev); #else -static inline int intel_vsec_register(struct pci_dev *pdev, +static inline int intel_vsec_register(struct device *dev, const struct intel_vsec_platform_info *info) { return -ENODEV; -- 2.43.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v7 5/6] platform/x86/intel/vsec: Return real error codes from registration path 2026-03-03 5:19 [PATCH v7 0/6] platform/x86/intel/vsec: Prep for ACPI PMT discovery David E. Box ` (3 preceding siblings ...) 2026-03-03 5:19 ` [PATCH v7 4/6] platform/x86/intel/vsec: Switch exported helpers from pci_dev to device David E. Box @ 2026-03-03 5:19 ` David E. Box 2026-03-03 5:19 ` [PATCH v7 6/6] platform/x86/intel/vsec: Plumb ACPI PMT discovery tables through vsec David E. Box ` (3 subsequent siblings) 8 siblings, 0 replies; 13+ messages in thread From: David E. Box @ 2026-03-03 5:19 UTC (permalink / raw) To: thomas.hellstrom, rodrigo.vivi, irenic.rajneesh, ilpo.jarvinen, srinivas.pandruvada, intel-xe, dri-devel, xi.pardee Cc: david.e.box, hansg, linux-kernel, platform-driver-x86 Stop collapsing registration results into booleans. Make intel_vsec_walk_header() return int and propagate the first non-zero error from intel_vsec_register_device(). intel_vsec_register() now returns that error directly and 0 on success. This preserves success behavior while surfacing meaningful errors instead of hiding them behind a bool/-ENODEV, which makes debugging and probe ordering issues clearer. Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: David E. Box <david.e.box@linux.intel.com> --- Changes in v7: - No change Changes in v6: - No change Changes in v5: - No change Changes in v4: - No change Changes in v3: - No change Changes in v2: - No change (previous patch 3) drivers/platform/x86/intel/vsec.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/drivers/platform/x86/intel/vsec.c b/drivers/platform/x86/intel/vsec.c index a547e4b98245..34b2c19ecff0 100644 --- a/drivers/platform/x86/intel/vsec.c +++ b/drivers/platform/x86/intel/vsec.c @@ -461,20 +461,19 @@ static int intel_vsec_register_device(struct device *dev, return -EAGAIN; } -static bool intel_vsec_walk_header(struct device *dev, - const struct intel_vsec_platform_info *info) +static int intel_vsec_walk_header(struct device *dev, + const struct intel_vsec_platform_info *info) { struct intel_vsec_header **header = info->headers; - bool have_devices = false; int ret; for ( ; *header; header++) { ret = intel_vsec_register_device(dev, *header, info, info->base_addr); - if (!ret) - have_devices = true; + if (ret) + return ret; } - return have_devices; + return 0; } static bool intel_vsec_walk_dvsec(struct pci_dev *pdev, @@ -580,10 +579,7 @@ int intel_vsec_register(struct device *dev, if (!dev || !info || !info->headers) return -EINVAL; - if (!intel_vsec_walk_header(dev, info)) - return -ENODEV; - else - return 0; + return intel_vsec_walk_header(dev, info); } EXPORT_SYMBOL_NS_GPL(intel_vsec_register, "INTEL_VSEC"); -- 2.43.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v7 6/6] platform/x86/intel/vsec: Plumb ACPI PMT discovery tables through vsec 2026-03-03 5:19 [PATCH v7 0/6] platform/x86/intel/vsec: Prep for ACPI PMT discovery David E. Box ` (4 preceding siblings ...) 2026-03-03 5:19 ` [PATCH v7 5/6] platform/x86/intel/vsec: Return real error codes from registration path David E. Box @ 2026-03-03 5:19 ` David E. Box 2026-03-03 5:49 ` ✓ CI.KUnit: success for platform/x86/intel/vsec: Prep for ACPI PMT discovery (rev7) Patchwork ` (2 subsequent siblings) 8 siblings, 0 replies; 13+ messages in thread From: David E. Box @ 2026-03-03 5:19 UTC (permalink / raw) To: thomas.hellstrom, rodrigo.vivi, irenic.rajneesh, ilpo.jarvinen, srinivas.pandruvada, intel-xe, dri-devel, xi.pardee Cc: david.e.box, hansg, linux-kernel, platform-driver-x86 Some platforms expose PMT discovery via ACPI instead of PCI BARs. Add a generic discovery source flag and carry ACPI discovery entries alongside the existing PCI resource path so PMT clients can consume either. Changes: - Add enum intel_vsec_disc_source { _PCI, _ACPI }. - Extend intel_vsec_platform_info and intel_vsec_device with source enum and ACPI discovery table pointer/ - When src==ACPI, skip BAR resource setup and copy the ACPI discovery entries into the aux device. No user-visible behavior change yet; this only wires ACPI data through vsec in preparation for ACPI-enumerated PMT clients. Signed-off-by: David E. Box <david.e.box@linux.intel.com> --- Changes in v7: - No change Changes in v6: - Fix checkpatch parens alignment warning Changes in v5: - No change Changes in v4: - Use check_mul_overflow() instead of array_size() which was incorrectly checking for 0 anyway. Changes in v3: - Re-send with all changes intended for v2 which was sent without them being applied. Changes in v2: - Improve comment to clarify BAR resource setup doesn't apply to ACPI discovery - Add missing #include for kmemdup() - Use array_size() for overflow protection (review comments by Ilpo Järvinen) drivers/platform/x86/intel/vsec.c | 23 +++++++++++++++++++++++ include/linux/intel_vsec.h | 20 +++++++++++++++++++- 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/drivers/platform/x86/intel/vsec.c b/drivers/platform/x86/intel/vsec.c index 34b2c19ecff0..7d5dbc1c1d05 100644 --- a/drivers/platform/x86/intel/vsec.c +++ b/drivers/platform/x86/intel/vsec.c @@ -24,7 +24,9 @@ #include <linux/intel_vsec.h> #include <linux/kernel.h> #include <linux/module.h> +#include <linux/overflow.h> #include <linux/pci.h> +#include <linux/string.h> #include <linux/types.h> #define PMT_XA_START 0 @@ -109,6 +111,7 @@ static void intel_vsec_dev_release(struct device *dev) ida_free(intel_vsec_dev->ida, intel_vsec_dev->auxdev.id); + kfree(intel_vsec_dev->acpi_disc); kfree(intel_vsec_dev->resource); kfree(intel_vsec_dev); } @@ -320,6 +323,13 @@ static int intel_vsec_add_dev(struct device *dev, struct intel_vsec_header *head * auxiliary device driver. */ for (i = 0, tmp = res; i < header->num_entries; i++, tmp++) { + /* + * Skip resource mapping check for ACPI-based discovery + * since those tables are read from _DSD, not MMIO. + */ + if (info->src == INTEL_VSEC_DISC_ACPI) + break; + tmp->start = base_addr + header->offset + i * (header->entry_size * sizeof(u32)); tmp->end = tmp->start + (header->entry_size * sizeof(u32)) - 1; tmp->flags = IORESOURCE_MEM; @@ -338,6 +348,19 @@ static int intel_vsec_add_dev(struct device *dev, struct intel_vsec_header *head intel_vsec_dev->base_addr = info->base_addr; intel_vsec_dev->priv_data = info->priv_data; intel_vsec_dev->cap_id = cap_id; + intel_vsec_dev->src = info->src; + + if (info->src == INTEL_VSEC_DISC_ACPI) { + size_t bytes; + + if (check_mul_overflow(intel_vsec_dev->num_resources, + sizeof(*info->acpi_disc), &bytes)) + return -EOVERFLOW; + + intel_vsec_dev->acpi_disc = kmemdup(info->acpi_disc, bytes, GFP_KERNEL); + if (!intel_vsec_dev->acpi_disc) + return -ENOMEM; + } if (header->id == VSEC_ID_SDSI) intel_vsec_dev->ida = &intel_vsec_sdsi_ida; diff --git a/include/linux/intel_vsec.h b/include/linux/intel_vsec.h index 4eecb2a6bac4..1fe5665a9d02 100644 --- a/include/linux/intel_vsec.h +++ b/include/linux/intel_vsec.h @@ -33,6 +33,11 @@ struct device; struct pci_dev; struct resource; +enum intel_vsec_disc_source { + INTEL_VSEC_DISC_PCI, /* PCI, default */ + INTEL_VSEC_DISC_ACPI, /* ACPI */ +}; + enum intel_vsec_id { VSEC_ID_TELEMETRY = 2, VSEC_ID_WATCHER = 3, @@ -103,6 +108,10 @@ struct vsec_feature_dependency { * @parent: parent device in the auxbus chain * @headers: list of headers to define the PMT client devices to create * @deps: array of feature dependencies + * @acpi_disc: ACPI discovery tables, each entry is two QWORDs + * in little-endian format as defined by the PMT ACPI spec. + * Valid only when @provider == INTEL_VSEC_DISC_ACPI. + * @src: source of discovery table data * @priv_data: private data, usable by parent devices, currently a callback * @caps: bitmask of PMT capabilities for the given headers * @quirks: bitmask of VSEC device quirks @@ -113,6 +122,8 @@ struct intel_vsec_platform_info { struct device *parent; struct intel_vsec_header **headers; const struct vsec_feature_dependency *deps; + u32 (*acpi_disc)[4]; + enum intel_vsec_disc_source src; void *priv_data; unsigned long caps; unsigned long quirks; @@ -124,7 +135,12 @@ struct intel_vsec_platform_info { * struct intel_vsec_device - Auxbus specific device information * @auxdev: auxbus device struct for auxbus access * @dev: struct device associated with the device - * @resource: any resources shared by the parent + * @resource: PCI discovery resources (BAR windows), one per discovery + * instance. Valid only when @src == INTEL_VSEC_DISC_PCI + * @acpi_disc: ACPI discovery tables, each entry is two QWORDs + * in little-endian format as defined by the PMT ACPI spec. + * Valid only when @src == INTEL_VSEC_DISC_ACPI. + * @src: source of discovery table data * @ida: id reference * @num_resources: number of resources * @id: xarray id @@ -138,6 +154,8 @@ struct intel_vsec_device { struct auxiliary_device auxdev; struct device *dev; struct resource *resource; + u32 (*acpi_disc)[4]; + enum intel_vsec_disc_source src; struct ida *ida; int num_resources; int id; /* xa */ -- 2.43.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* ✓ CI.KUnit: success for platform/x86/intel/vsec: Prep for ACPI PMT discovery (rev7) 2026-03-03 5:19 [PATCH v7 0/6] platform/x86/intel/vsec: Prep for ACPI PMT discovery David E. Box ` (5 preceding siblings ...) 2026-03-03 5:19 ` [PATCH v7 6/6] platform/x86/intel/vsec: Plumb ACPI PMT discovery tables through vsec David E. Box @ 2026-03-03 5:49 ` Patchwork 2026-03-03 6:35 ` ✓ Xe.CI.BAT: " Patchwork 2026-03-03 15:15 ` ✓ Xe.CI.FULL: " Patchwork 8 siblings, 0 replies; 13+ messages in thread From: Patchwork @ 2026-03-03 5:49 UTC (permalink / raw) To: David E. Box; +Cc: intel-xe == Series Details == Series: platform/x86/intel/vsec: Prep for ACPI PMT discovery (rev7) URL : https://patchwork.freedesktop.org/series/159716/ State : success == Summary == + trap cleanup EXIT + /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig [05:48:07] Configuring KUnit Kernel ... Generating .config ... Populating config with: $ make ARCH=um O=.kunit olddefconfig [05:48:12] Building KUnit Kernel ... Populating config with: $ make ARCH=um O=.kunit olddefconfig Building with: $ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=25 [05:48:49] Starting KUnit Kernel (1/1)... [05:48:49] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [05:48:50] ================== guc_buf (11 subtests) =================== [05:48:50] [PASSED] test_smallest [05:48:50] [PASSED] test_largest [05:48:50] [PASSED] test_granular [05:48:50] [PASSED] test_unique [05:48:50] [PASSED] test_overlap [05:48:50] [PASSED] test_reusable [05:48:50] [PASSED] test_too_big [05:48:50] [PASSED] test_flush [05:48:50] [PASSED] test_lookup [05:48:50] [PASSED] test_data [05:48:50] [PASSED] test_class [05:48:50] ===================== [PASSED] guc_buf ===================== [05:48:50] =================== guc_dbm (7 subtests) =================== [05:48:50] [PASSED] test_empty [05:48:50] [PASSED] test_default [05:48:50] ======================== test_size ======================== [05:48:50] [PASSED] 4 [05:48:50] [PASSED] 8 [05:48:50] [PASSED] 32 [05:48:50] [PASSED] 256 [05:48:50] ==================== [PASSED] test_size ==================== [05:48:50] ======================= test_reuse ======================== [05:48:50] [PASSED] 4 [05:48:50] [PASSED] 8 [05:48:50] [PASSED] 32 [05:48:50] [PASSED] 256 [05:48:50] =================== [PASSED] test_reuse ==================== [05:48:50] =================== test_range_overlap ==================== [05:48:50] [PASSED] 4 [05:48:50] [PASSED] 8 [05:48:50] [PASSED] 32 [05:48:50] [PASSED] 256 [05:48:50] =============== [PASSED] test_range_overlap ================ [05:48:50] =================== test_range_compact ==================== [05:48:50] [PASSED] 4 [05:48:50] [PASSED] 8 [05:48:50] [PASSED] 32 [05:48:50] [PASSED] 256 [05:48:50] =============== [PASSED] test_range_compact ================ [05:48:50] ==================== test_range_spare ===================== [05:48:50] [PASSED] 4 [05:48:50] [PASSED] 8 [05:48:50] [PASSED] 32 [05:48:50] [PASSED] 256 [05:48:50] ================ [PASSED] test_range_spare ================= [05:48:50] ===================== [PASSED] guc_dbm ===================== [05:48:50] =================== guc_idm (6 subtests) =================== [05:48:50] [PASSED] bad_init [05:48:50] [PASSED] no_init [05:48:50] [PASSED] init_fini [05:48:50] [PASSED] check_used [05:48:50] [PASSED] check_quota [05:48:50] [PASSED] check_all [05:48:50] ===================== [PASSED] guc_idm ===================== [05:48:50] ================== no_relay (3 subtests) =================== [05:48:50] [PASSED] xe_drops_guc2pf_if_not_ready [05:48:50] [PASSED] xe_drops_guc2vf_if_not_ready [05:48:50] [PASSED] xe_rejects_send_if_not_ready [05:48:50] ==================== [PASSED] no_relay ===================== [05:48:50] ================== pf_relay (14 subtests) ================== [05:48:50] [PASSED] pf_rejects_guc2pf_too_short [05:48:50] [PASSED] pf_rejects_guc2pf_too_long [05:48:50] [PASSED] pf_rejects_guc2pf_no_payload [05:48:50] [PASSED] pf_fails_no_payload [05:48:50] [PASSED] pf_fails_bad_origin [05:48:50] [PASSED] pf_fails_bad_type [05:48:50] [PASSED] pf_txn_reports_error [05:48:50] [PASSED] pf_txn_sends_pf2guc [05:48:50] [PASSED] pf_sends_pf2guc [05:48:50] [SKIPPED] pf_loopback_nop [05:48:50] [SKIPPED] pf_loopback_echo [05:48:50] [SKIPPED] pf_loopback_fail [05:48:50] [SKIPPED] pf_loopback_busy [05:48:50] [SKIPPED] pf_loopback_retry [05:48:50] ==================== [PASSED] pf_relay ===================== [05:48:50] ================== vf_relay (3 subtests) =================== [05:48:50] [PASSED] vf_rejects_guc2vf_too_short [05:48:50] [PASSED] vf_rejects_guc2vf_too_long [05:48:50] [PASSED] vf_rejects_guc2vf_no_payload [05:48:50] ==================== [PASSED] vf_relay ===================== [05:48:50] ================ pf_gt_config (9 subtests) ================= [05:48:50] [PASSED] fair_contexts_1vf [05:48:50] [PASSED] fair_doorbells_1vf [05:48:50] [PASSED] fair_ggtt_1vf [05:48:50] ====================== fair_vram_1vf ====================== [05:48:50] [PASSED] 3.50 GiB [05:48:50] [PASSED] 11.5 GiB [05:48:50] [PASSED] 15.5 GiB [05:48:50] [PASSED] 31.5 GiB [05:48:50] [PASSED] 63.5 GiB [05:48:50] [PASSED] 13.9 GiB [05:48:50] ================== [PASSED] fair_vram_1vf ================== [05:48:50] ================ fair_vram_1vf_admin_only ================= [05:48:50] [PASSED] 3.50 GiB [05:48:50] [PASSED] 11.5 GiB [05:48:50] [PASSED] 15.5 GiB [05:48:50] [PASSED] 31.5 GiB [05:48:50] [PASSED] 63.5 GiB [05:48:50] [PASSED] 13.9 GiB [05:48:50] ============ [PASSED] fair_vram_1vf_admin_only ============= [05:48:50] ====================== fair_contexts ====================== [05:48:50] [PASSED] 1 VF [05:48:50] [PASSED] 2 VFs [05:48:50] [PASSED] 3 VFs [05:48:50] [PASSED] 4 VFs [05:48:50] [PASSED] 5 VFs [05:48:50] [PASSED] 6 VFs [05:48:50] [PASSED] 7 VFs [05:48:50] [PASSED] 8 VFs [05:48:50] [PASSED] 9 VFs [05:48:50] [PASSED] 10 VFs [05:48:50] [PASSED] 11 VFs [05:48:50] [PASSED] 12 VFs [05:48:50] [PASSED] 13 VFs [05:48:50] [PASSED] 14 VFs [05:48:50] [PASSED] 15 VFs [05:48:50] [PASSED] 16 VFs [05:48:50] [PASSED] 17 VFs [05:48:50] [PASSED] 18 VFs [05:48:50] [PASSED] 19 VFs [05:48:50] [PASSED] 20 VFs [05:48:50] [PASSED] 21 VFs [05:48:50] [PASSED] 22 VFs [05:48:50] [PASSED] 23 VFs [05:48:50] [PASSED] 24 VFs [05:48:50] [PASSED] 25 VFs [05:48:50] [PASSED] 26 VFs [05:48:50] [PASSED] 27 VFs [05:48:50] [PASSED] 28 VFs [05:48:50] [PASSED] 29 VFs [05:48:50] [PASSED] 30 VFs [05:48:50] [PASSED] 31 VFs [05:48:50] [PASSED] 32 VFs [05:48:50] [PASSED] 33 VFs [05:48:50] [PASSED] 34 VFs [05:48:50] [PASSED] 35 VFs [05:48:50] [PASSED] 36 VFs [05:48:50] [PASSED] 37 VFs [05:48:50] [PASSED] 38 VFs [05:48:50] [PASSED] 39 VFs [05:48:50] [PASSED] 40 VFs [05:48:50] [PASSED] 41 VFs [05:48:50] [PASSED] 42 VFs [05:48:50] [PASSED] 43 VFs [05:48:50] [PASSED] 44 VFs [05:48:50] [PASSED] 45 VFs [05:48:50] [PASSED] 46 VFs [05:48:50] [PASSED] 47 VFs [05:48:50] [PASSED] 48 VFs [05:48:50] [PASSED] 49 VFs [05:48:50] [PASSED] 50 VFs [05:48:50] [PASSED] 51 VFs [05:48:50] [PASSED] 52 VFs [05:48:50] [PASSED] 53 VFs [05:48:50] [PASSED] 54 VFs [05:48:50] [PASSED] 55 VFs [05:48:50] [PASSED] 56 VFs [05:48:50] [PASSED] 57 VFs [05:48:50] [PASSED] 58 VFs [05:48:50] [PASSED] 59 VFs [05:48:50] [PASSED] 60 VFs [05:48:50] [PASSED] 61 VFs [05:48:50] [PASSED] 62 VFs [05:48:50] [PASSED] 63 VFs [05:48:50] ================== [PASSED] fair_contexts ================== [05:48:50] ===================== fair_doorbells ====================== [05:48:50] [PASSED] 1 VF [05:48:50] [PASSED] 2 VFs [05:48:50] [PASSED] 3 VFs [05:48:50] [PASSED] 4 VFs [05:48:50] [PASSED] 5 VFs [05:48:50] [PASSED] 6 VFs [05:48:50] [PASSED] 7 VFs [05:48:50] [PASSED] 8 VFs [05:48:50] [PASSED] 9 VFs [05:48:50] [PASSED] 10 VFs [05:48:50] [PASSED] 11 VFs [05:48:50] [PASSED] 12 VFs [05:48:50] [PASSED] 13 VFs [05:48:50] [PASSED] 14 VFs [05:48:50] [PASSED] 15 VFs [05:48:50] [PASSED] 16 VFs [05:48:50] [PASSED] 17 VFs [05:48:50] [PASSED] 18 VFs [05:48:50] [PASSED] 19 VFs [05:48:50] [PASSED] 20 VFs [05:48:50] [PASSED] 21 VFs [05:48:50] [PASSED] 22 VFs [05:48:50] [PASSED] 23 VFs [05:48:50] [PASSED] 24 VFs [05:48:50] [PASSED] 25 VFs [05:48:50] [PASSED] 26 VFs [05:48:50] [PASSED] 27 VFs [05:48:50] [PASSED] 28 VFs [05:48:50] [PASSED] 29 VFs [05:48:50] [PASSED] 30 VFs [05:48:50] [PASSED] 31 VFs [05:48:50] [PASSED] 32 VFs [05:48:50] [PASSED] 33 VFs [05:48:50] [PASSED] 34 VFs [05:48:50] [PASSED] 35 VFs [05:48:50] [PASSED] 36 VFs [05:48:50] [PASSED] 37 VFs [05:48:50] [PASSED] 38 VFs [05:48:50] [PASSED] 39 VFs [05:48:50] [PASSED] 40 VFs [05:48:50] [PASSED] 41 VFs [05:48:50] [PASSED] 42 VFs [05:48:50] [PASSED] 43 VFs [05:48:50] [PASSED] 44 VFs [05:48:50] [PASSED] 45 VFs [05:48:50] [PASSED] 46 VFs [05:48:50] [PASSED] 47 VFs [05:48:50] [PASSED] 48 VFs [05:48:50] [PASSED] 49 VFs [05:48:50] [PASSED] 50 VFs [05:48:50] [PASSED] 51 VFs [05:48:50] [PASSED] 52 VFs [05:48:50] [PASSED] 53 VFs [05:48:50] [PASSED] 54 VFs [05:48:50] [PASSED] 55 VFs [05:48:50] [PASSED] 56 VFs [05:48:50] [PASSED] 57 VFs [05:48:50] [PASSED] 58 VFs [05:48:50] [PASSED] 59 VFs [05:48:50] [PASSED] 60 VFs [05:48:50] [PASSED] 61 VFs [05:48:50] [PASSED] 62 VFs [05:48:50] [PASSED] 63 VFs [05:48:50] ================= [PASSED] fair_doorbells ================== [05:48:50] ======================== fair_ggtt ======================== [05:48:50] [PASSED] 1 VF [05:48:50] [PASSED] 2 VFs [05:48:50] [PASSED] 3 VFs [05:48:50] [PASSED] 4 VFs [05:48:50] [PASSED] 5 VFs [05:48:50] [PASSED] 6 VFs [05:48:50] [PASSED] 7 VFs [05:48:50] [PASSED] 8 VFs [05:48:50] [PASSED] 9 VFs [05:48:50] [PASSED] 10 VFs [05:48:50] [PASSED] 11 VFs [05:48:50] [PASSED] 12 VFs [05:48:50] [PASSED] 13 VFs [05:48:50] [PASSED] 14 VFs [05:48:50] [PASSED] 15 VFs [05:48:50] [PASSED] 16 VFs [05:48:50] [PASSED] 17 VFs [05:48:50] [PASSED] 18 VFs [05:48:50] [PASSED] 19 VFs [05:48:50] [PASSED] 20 VFs [05:48:50] [PASSED] 21 VFs [05:48:50] [PASSED] 22 VFs [05:48:50] [PASSED] 23 VFs [05:48:50] [PASSED] 24 VFs [05:48:50] [PASSED] 25 VFs [05:48:50] [PASSED] 26 VFs [05:48:50] [PASSED] 27 VFs [05:48:50] [PASSED] 28 VFs [05:48:50] [PASSED] 29 VFs [05:48:50] [PASSED] 30 VFs [05:48:50] [PASSED] 31 VFs [05:48:50] [PASSED] 32 VFs [05:48:50] [PASSED] 33 VFs [05:48:50] [PASSED] 34 VFs [05:48:50] [PASSED] 35 VFs [05:48:50] [PASSED] 36 VFs [05:48:50] [PASSED] 37 VFs [05:48:50] [PASSED] 38 VFs [05:48:50] [PASSED] 39 VFs [05:48:50] [PASSED] 40 VFs [05:48:50] [PASSED] 41 VFs [05:48:50] [PASSED] 42 VFs [05:48:50] [PASSED] 43 VFs [05:48:50] [PASSED] 44 VFs [05:48:50] [PASSED] 45 VFs [05:48:50] [PASSED] 46 VFs [05:48:50] [PASSED] 47 VFs [05:48:50] [PASSED] 48 VFs [05:48:50] [PASSED] 49 VFs [05:48:50] [PASSED] 50 VFs [05:48:50] [PASSED] 51 VFs [05:48:50] [PASSED] 52 VFs [05:48:50] [PASSED] 53 VFs [05:48:50] [PASSED] 54 VFs [05:48:50] [PASSED] 55 VFs [05:48:50] [PASSED] 56 VFs [05:48:50] [PASSED] 57 VFs [05:48:50] [PASSED] 58 VFs [05:48:50] [PASSED] 59 VFs [05:48:50] [PASSED] 60 VFs [05:48:50] [PASSED] 61 VFs [05:48:50] [PASSED] 62 VFs [05:48:50] [PASSED] 63 VFs [05:48:50] ==================== [PASSED] fair_ggtt ==================== [05:48:50] ======================== fair_vram ======================== [05:48:50] [PASSED] 1 VF [05:48:50] [PASSED] 2 VFs [05:48:50] [PASSED] 3 VFs [05:48:50] [PASSED] 4 VFs [05:48:50] [PASSED] 5 VFs [05:48:50] [PASSED] 6 VFs [05:48:50] [PASSED] 7 VFs [05:48:50] [PASSED] 8 VFs [05:48:50] [PASSED] 9 VFs [05:48:50] [PASSED] 10 VFs [05:48:50] [PASSED] 11 VFs [05:48:50] [PASSED] 12 VFs [05:48:50] [PASSED] 13 VFs [05:48:50] [PASSED] 14 VFs [05:48:50] [PASSED] 15 VFs [05:48:50] [PASSED] 16 VFs [05:48:50] [PASSED] 17 VFs [05:48:50] [PASSED] 18 VFs [05:48:50] [PASSED] 19 VFs [05:48:50] [PASSED] 20 VFs [05:48:50] [PASSED] 21 VFs [05:48:50] [PASSED] 22 VFs [05:48:50] [PASSED] 23 VFs [05:48:50] [PASSED] 24 VFs [05:48:50] [PASSED] 25 VFs [05:48:50] [PASSED] 26 VFs [05:48:50] [PASSED] 27 VFs [05:48:50] [PASSED] 28 VFs [05:48:50] [PASSED] 29 VFs [05:48:50] [PASSED] 30 VFs [05:48:50] [PASSED] 31 VFs [05:48:50] [PASSED] 32 VFs [05:48:50] [PASSED] 33 VFs [05:48:50] [PASSED] 34 VFs [05:48:50] [PASSED] 35 VFs [05:48:50] [PASSED] 36 VFs [05:48:50] [PASSED] 37 VFs [05:48:50] [PASSED] 38 VFs [05:48:50] [PASSED] 39 VFs [05:48:50] [PASSED] 40 VFs [05:48:50] [PASSED] 41 VFs [05:48:50] [PASSED] 42 VFs [05:48:50] [PASSED] 43 VFs [05:48:50] [PASSED] 44 VFs [05:48:50] [PASSED] 45 VFs [05:48:50] [PASSED] 46 VFs [05:48:50] [PASSED] 47 VFs [05:48:50] [PASSED] 48 VFs [05:48:50] [PASSED] 49 VFs [05:48:50] [PASSED] 50 VFs [05:48:50] [PASSED] 51 VFs [05:48:50] [PASSED] 52 VFs [05:48:50] [PASSED] 53 VFs [05:48:50] [PASSED] 54 VFs [05:48:50] [PASSED] 55 VFs [05:48:50] [PASSED] 56 VFs [05:48:50] [PASSED] 57 VFs [05:48:50] [PASSED] 58 VFs [05:48:50] [PASSED] 59 VFs [05:48:50] [PASSED] 60 VFs [05:48:50] [PASSED] 61 VFs [05:48:50] [PASSED] 62 VFs [05:48:50] [PASSED] 63 VFs [05:48:50] ==================== [PASSED] fair_vram ==================== [05:48:50] ================== [PASSED] pf_gt_config =================== [05:48:50] ===================== lmtt (1 subtest) ===================== [05:48:50] ======================== test_ops ========================= [05:48:50] [PASSED] 2-level [05:48:50] [PASSED] multi-level [05:48:50] ==================== [PASSED] test_ops ===================== [05:48:50] ====================== [PASSED] lmtt ======================= [05:48:50] ================= pf_service (11 subtests) ================= [05:48:50] [PASSED] pf_negotiate_any [05:48:50] [PASSED] pf_negotiate_base_match [05:48:50] [PASSED] pf_negotiate_base_newer [05:48:50] [PASSED] pf_negotiate_base_next [05:48:50] [SKIPPED] pf_negotiate_base_older [05:48:50] [PASSED] pf_negotiate_base_prev [05:48:50] [PASSED] pf_negotiate_latest_match [05:48:50] [PASSED] pf_negotiate_latest_newer [05:48:50] [PASSED] pf_negotiate_latest_next [05:48:50] [SKIPPED] pf_negotiate_latest_older [05:48:50] [SKIPPED] pf_negotiate_latest_prev [05:48:50] =================== [PASSED] pf_service ==================== [05:48:50] ================= xe_guc_g2g (2 subtests) ================== [05:48:50] ============== xe_live_guc_g2g_kunit_default ============== [05:48:50] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ========== [05:48:50] ============== xe_live_guc_g2g_kunit_allmem =============== [05:48:50] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ========== [05:48:50] =================== [SKIPPED] xe_guc_g2g =================== [05:48:50] =================== xe_mocs (2 subtests) =================== [05:48:50] ================ xe_live_mocs_kernel_kunit ================ [05:48:50] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============ [05:48:50] ================ xe_live_mocs_reset_kunit ================= [05:48:50] ============ [SKIPPED] xe_live_mocs_reset_kunit ============ [05:48:50] ==================== [SKIPPED] xe_mocs ===================== [05:48:50] ================= xe_migrate (2 subtests) ================== [05:48:50] ================= xe_migrate_sanity_kunit ================= [05:48:50] ============ [SKIPPED] xe_migrate_sanity_kunit ============= [05:48:50] ================== xe_validate_ccs_kunit ================== [05:48:50] ============= [SKIPPED] xe_validate_ccs_kunit ============== [05:48:50] =================== [SKIPPED] xe_migrate =================== [05:48:50] ================== xe_dma_buf (1 subtest) ================== [05:48:50] ==================== xe_dma_buf_kunit ===================== [05:48:50] ================ [SKIPPED] xe_dma_buf_kunit ================ [05:48:50] =================== [SKIPPED] xe_dma_buf =================== [05:48:50] ================= xe_bo_shrink (1 subtest) ================= [05:48:50] =================== xe_bo_shrink_kunit ==================== [05:48:50] =============== [SKIPPED] xe_bo_shrink_kunit =============== [05:48:50] ================== [SKIPPED] xe_bo_shrink ================== [05:48:50] ==================== xe_bo (2 subtests) ==================== [05:48:50] ================== xe_ccs_migrate_kunit =================== [05:48:50] ============== [SKIPPED] xe_ccs_migrate_kunit ============== [05:48:50] ==================== xe_bo_evict_kunit ==================== [05:48:50] =============== [SKIPPED] xe_bo_evict_kunit ================ [05:48:50] ===================== [SKIPPED] xe_bo ====================== [05:48:50] ==================== args (13 subtests) ==================== [05:48:50] [PASSED] count_args_test [05:48:50] [PASSED] call_args_example [05:48:50] [PASSED] call_args_test [05:48:50] [PASSED] drop_first_arg_example [05:48:50] [PASSED] drop_first_arg_test [05:48:50] [PASSED] first_arg_example [05:48:50] [PASSED] first_arg_test [05:48:50] [PASSED] last_arg_example [05:48:50] [PASSED] last_arg_test [05:48:50] [PASSED] pick_arg_example [05:48:50] [PASSED] if_args_example [05:48:50] [PASSED] if_args_test [05:48:50] [PASSED] sep_comma_example [05:48:50] ====================== [PASSED] args ======================= [05:48:50] =================== xe_pci (3 subtests) ==================== [05:48:50] ==================== check_graphics_ip ==================== [05:48:50] [PASSED] 12.00 Xe_LP [05:48:50] [PASSED] 12.10 Xe_LP+ [05:48:50] [PASSED] 12.55 Xe_HPG [05:48:50] [PASSED] 12.60 Xe_HPC [05:48:50] [PASSED] 12.70 Xe_LPG [05:48:50] [PASSED] 12.71 Xe_LPG [05:48:50] [PASSED] 12.74 Xe_LPG+ [05:48:50] [PASSED] 20.01 Xe2_HPG [05:48:50] [PASSED] 20.02 Xe2_HPG [05:48:50] [PASSED] 20.04 Xe2_LPG [05:48:50] [PASSED] 30.00 Xe3_LPG [05:48:50] [PASSED] 30.01 Xe3_LPG [05:48:50] [PASSED] 30.03 Xe3_LPG [05:48:50] [PASSED] 30.04 Xe3_LPG [05:48:50] [PASSED] 30.05 Xe3_LPG [05:48:50] [PASSED] 35.10 Xe3p_LPG [05:48:50] [PASSED] 35.11 Xe3p_XPC [05:48:50] ================ [PASSED] check_graphics_ip ================ [05:48:50] ===================== check_media_ip ====================== [05:48:50] [PASSED] 12.00 Xe_M [05:48:50] [PASSED] 12.55 Xe_HPM [05:48:50] [PASSED] 13.00 Xe_LPM+ [05:48:50] [PASSED] 13.01 Xe2_HPM [05:48:50] [PASSED] 20.00 Xe2_LPM [05:48:50] [PASSED] 30.00 Xe3_LPM [05:48:50] [PASSED] 30.02 Xe3_LPM [05:48:50] [PASSED] 35.00 Xe3p_LPM [05:48:50] [PASSED] 35.03 Xe3p_HPM [05:48:50] ================= [PASSED] check_media_ip ================== [05:48:50] =================== check_platform_desc =================== [05:48:50] [PASSED] 0x9A60 (TIGERLAKE) [05:48:50] [PASSED] 0x9A68 (TIGERLAKE) [05:48:50] [PASSED] 0x9A70 (TIGERLAKE) [05:48:50] [PASSED] 0x9A40 (TIGERLAKE) [05:48:50] [PASSED] 0x9A49 (TIGERLAKE) [05:48:50] [PASSED] 0x9A59 (TIGERLAKE) [05:48:50] [PASSED] 0x9A78 (TIGERLAKE) [05:48:50] [PASSED] 0x9AC0 (TIGERLAKE) [05:48:50] [PASSED] 0x9AC9 (TIGERLAKE) [05:48:50] [PASSED] 0x9AD9 (TIGERLAKE) [05:48:50] [PASSED] 0x9AF8 (TIGERLAKE) [05:48:50] [PASSED] 0x4C80 (ROCKETLAKE) [05:48:50] [PASSED] 0x4C8A (ROCKETLAKE) [05:48:50] [PASSED] 0x4C8B (ROCKETLAKE) [05:48:50] [PASSED] 0x4C8C (ROCKETLAKE) [05:48:50] [PASSED] 0x4C90 (ROCKETLAKE) [05:48:50] [PASSED] 0x4C9A (ROCKETLAKE) [05:48:50] [PASSED] 0x4680 (ALDERLAKE_S) [05:48:50] [PASSED] 0x4682 (ALDERLAKE_S) [05:48:50] [PASSED] 0x4688 (ALDERLAKE_S) [05:48:50] [PASSED] 0x468A (ALDERLAKE_S) [05:48:50] [PASSED] 0x468B (ALDERLAKE_S) [05:48:50] [PASSED] 0x4690 (ALDERLAKE_S) [05:48:50] [PASSED] 0x4692 (ALDERLAKE_S) [05:48:50] [PASSED] 0x4693 (ALDERLAKE_S) [05:48:50] [PASSED] 0x46A0 (ALDERLAKE_P) [05:48:50] [PASSED] 0x46A1 (ALDERLAKE_P) [05:48:50] [PASSED] 0x46A2 (ALDERLAKE_P) [05:48:50] [PASSED] 0x46A3 (ALDERLAKE_P) [05:48:50] [PASSED] 0x46A6 (ALDERLAKE_P) [05:48:50] [PASSED] 0x46A8 (ALDERLAKE_P) [05:48:50] [PASSED] 0x46AA (ALDERLAKE_P) [05:48:50] [PASSED] 0x462A (ALDERLAKE_P) [05:48:50] [PASSED] 0x4626 (ALDERLAKE_P) [05:48:50] [PASSED] 0x4628 (ALDERLAKE_P) [05:48:50] [PASSED] 0x46B0 (ALDERLAKE_P) [05:48:50] [PASSED] 0x46B1 (ALDERLAKE_P) [05:48:50] [PASSED] 0x46B2 (ALDERLAKE_P) [05:48:50] [PASSED] 0x46B3 (ALDERLAKE_P) [05:48:50] [PASSED] 0x46C0 (ALDERLAKE_P) [05:48:50] [PASSED] 0x46C1 (ALDERLAKE_P) [05:48:50] [PASSED] 0x46C2 (ALDERLAKE_P) [05:48:50] [PASSED] 0x46C3 (ALDERLAKE_P) [05:48:50] [PASSED] 0x46D0 (ALDERLAKE_N) [05:48:50] [PASSED] 0x46D1 (ALDERLAKE_N) [05:48:50] [PASSED] 0x46D2 (ALDERLAKE_N) [05:48:50] [PASSED] 0x46D3 (ALDERLAKE_N) [05:48:50] [PASSED] 0x46D4 (ALDERLAKE_N) [05:48:50] [PASSED] 0xA721 (ALDERLAKE_P) [05:48:50] [PASSED] 0xA7A1 (ALDERLAKE_P) [05:48:50] [PASSED] 0xA7A9 (ALDERLAKE_P) [05:48:50] [PASSED] 0xA7AC (ALDERLAKE_P) [05:48:50] [PASSED] 0xA7AD (ALDERLAKE_P) [05:48:50] [PASSED] 0xA720 (ALDERLAKE_P) [05:48:50] [PASSED] 0xA7A0 (ALDERLAKE_P) [05:48:50] [PASSED] 0xA7A8 (ALDERLAKE_P) [05:48:50] [PASSED] 0xA7AA (ALDERLAKE_P) [05:48:50] [PASSED] 0xA7AB (ALDERLAKE_P) [05:48:50] [PASSED] 0xA780 (ALDERLAKE_S) [05:48:50] [PASSED] 0xA781 (ALDERLAKE_S) [05:48:50] [PASSED] 0xA782 (ALDERLAKE_S) [05:48:50] [PASSED] 0xA783 (ALDERLAKE_S) [05:48:50] [PASSED] 0xA788 (ALDERLAKE_S) [05:48:50] [PASSED] 0xA789 (ALDERLAKE_S) [05:48:50] [PASSED] 0xA78A (ALDERLAKE_S) [05:48:50] [PASSED] 0xA78B (ALDERLAKE_S) [05:48:50] [PASSED] 0x4905 (DG1) [05:48:50] [PASSED] 0x4906 (DG1) [05:48:50] [PASSED] 0x4907 (DG1) [05:48:50] [PASSED] 0x4908 (DG1) [05:48:50] [PASSED] 0x4909 (DG1) [05:48:50] [PASSED] 0x56C0 (DG2) [05:48:50] [PASSED] 0x56C2 (DG2) [05:48:50] [PASSED] 0x56C1 (DG2) [05:48:50] [PASSED] 0x7D51 (METEORLAKE) [05:48:50] [PASSED] 0x7DD1 (METEORLAKE) [05:48:50] [PASSED] 0x7D41 (METEORLAKE) [05:48:50] [PASSED] 0x7D67 (METEORLAKE) [05:48:50] [PASSED] 0xB640 (METEORLAKE) [05:48:50] [PASSED] 0x56A0 (DG2) [05:48:50] [PASSED] 0x56A1 (DG2) [05:48:50] [PASSED] 0x56A2 (DG2) [05:48:50] [PASSED] 0x56BE (DG2) [05:48:50] [PASSED] 0x56BF (DG2) [05:48:50] [PASSED] 0x5690 (DG2) [05:48:50] [PASSED] 0x5691 (DG2) [05:48:50] [PASSED] 0x5692 (DG2) [05:48:50] [PASSED] 0x56A5 (DG2) [05:48:50] [PASSED] 0x56A6 (DG2) [05:48:50] [PASSED] 0x56B0 (DG2) [05:48:50] [PASSED] 0x56B1 (DG2) [05:48:50] [PASSED] 0x56BA (DG2) [05:48:50] [PASSED] 0x56BB (DG2) [05:48:50] [PASSED] 0x56BC (DG2) [05:48:50] [PASSED] 0x56BD (DG2) [05:48:50] [PASSED] 0x5693 (DG2) [05:48:50] [PASSED] 0x5694 (DG2) [05:48:50] [PASSED] 0x5695 (DG2) [05:48:50] [PASSED] 0x56A3 (DG2) [05:48:50] [PASSED] 0x56A4 (DG2) [05:48:50] [PASSED] 0x56B2 (DG2) [05:48:50] [PASSED] 0x56B3 (DG2) [05:48:50] [PASSED] 0x5696 (DG2) [05:48:50] [PASSED] 0x5697 (DG2) [05:48:50] [PASSED] 0xB69 (PVC) [05:48:50] [PASSED] 0xB6E (PVC) [05:48:50] [PASSED] 0xBD4 (PVC) [05:48:50] [PASSED] 0xBD5 (PVC) [05:48:50] [PASSED] 0xBD6 (PVC) [05:48:50] [PASSED] 0xBD7 (PVC) [05:48:50] [PASSED] 0xBD8 (PVC) [05:48:50] [PASSED] 0xBD9 (PVC) [05:48:50] [PASSED] 0xBDA (PVC) [05:48:50] [PASSED] 0xBDB (PVC) [05:48:50] [PASSED] 0xBE0 (PVC) [05:48:50] [PASSED] 0xBE1 (PVC) [05:48:50] [PASSED] 0xBE5 (PVC) [05:48:50] [PASSED] 0x7D40 (METEORLAKE) [05:48:50] [PASSED] 0x7D45 (METEORLAKE) [05:48:50] [PASSED] 0x7D55 (METEORLAKE) [05:48:50] [PASSED] 0x7D60 (METEORLAKE) [05:48:50] [PASSED] 0x7DD5 (METEORLAKE) [05:48:50] [PASSED] 0x6420 (LUNARLAKE) [05:48:50] [PASSED] 0x64A0 (LUNARLAKE) [05:48:50] [PASSED] 0x64B0 (LUNARLAKE) [05:48:50] [PASSED] 0xE202 (BATTLEMAGE) [05:48:50] [PASSED] 0xE209 (BATTLEMAGE) [05:48:50] [PASSED] 0xE20B (BATTLEMAGE) [05:48:50] [PASSED] 0xE20C (BATTLEMAGE) [05:48:50] [PASSED] 0xE20D (BATTLEMAGE) [05:48:50] [PASSED] 0xE210 (BATTLEMAGE) [05:48:50] [PASSED] 0xE211 (BATTLEMAGE) [05:48:50] [PASSED] 0xE212 (BATTLEMAGE) [05:48:50] [PASSED] 0xE216 (BATTLEMAGE) [05:48:50] [PASSED] 0xE220 (BATTLEMAGE) [05:48:50] [PASSED] 0xE221 (BATTLEMAGE) [05:48:50] [PASSED] 0xE222 (BATTLEMAGE) [05:48:50] [PASSED] 0xE223 (BATTLEMAGE) [05:48:50] [PASSED] 0xB080 (PANTHERLAKE) [05:48:50] [PASSED] 0xB081 (PANTHERLAKE) [05:48:50] [PASSED] 0xB082 (PANTHERLAKE) [05:48:50] [PASSED] 0xB083 (PANTHERLAKE) [05:48:50] [PASSED] 0xB084 (PANTHERLAKE) [05:48:50] [PASSED] 0xB085 (PANTHERLAKE) [05:48:50] [PASSED] 0xB086 (PANTHERLAKE) [05:48:50] [PASSED] 0xB087 (PANTHERLAKE) [05:48:50] [PASSED] 0xB08F (PANTHERLAKE) [05:48:50] [PASSED] 0xB090 (PANTHERLAKE) [05:48:50] [PASSED] 0xB0A0 (PANTHERLAKE) [05:48:50] [PASSED] 0xB0B0 (PANTHERLAKE) [05:48:50] [PASSED] 0xFD80 (PANTHERLAKE) [05:48:50] [PASSED] 0xFD81 (PANTHERLAKE) [05:48:50] [PASSED] 0xD740 (NOVALAKE_S) [05:48:50] [PASSED] 0xD741 (NOVALAKE_S) [05:48:50] [PASSED] 0xD742 (NOVALAKE_S) [05:48:50] [PASSED] 0xD743 (NOVALAKE_S) [05:48:50] [PASSED] 0xD744 (NOVALAKE_S) [05:48:50] [PASSED] 0xD745 (NOVALAKE_S) [05:48:50] [PASSED] 0x674C (CRESCENTISLAND) [05:48:50] [PASSED] 0xD750 (NOVALAKE_P) [05:48:50] [PASSED] 0xD751 (NOVALAKE_P) [05:48:50] [PASSED] 0xD752 (NOVALAKE_P) [05:48:50] [PASSED] 0xD753 (NOVALAKE_P) [05:48:50] [PASSED] 0xD754 (NOVALAKE_P) [05:48:50] [PASSED] 0xD755 (NOVALAKE_P) [05:48:50] [PASSED] 0xD756 (NOVALAKE_P) [05:48:50] [PASSED] 0xD757 (NOVALAKE_P) [05:48:50] [PASSED] 0xD75F (NOVALAKE_P) [05:48:50] =============== [PASSED] check_platform_desc =============== [05:48:50] ===================== [PASSED] xe_pci ====================== [05:48:50] =================== xe_rtp (2 subtests) ==================== [05:48:50] =============== xe_rtp_process_to_sr_tests ================ [05:48:50] [PASSED] coalesce-same-reg [05:48:50] [PASSED] no-match-no-add [05:48:50] [PASSED] match-or [05:48:50] [PASSED] match-or-xfail [05:48:50] [PASSED] no-match-no-add-multiple-rules [05:48:50] [PASSED] two-regs-two-entries [05:48:50] [PASSED] clr-one-set-other [05:48:50] [PASSED] set-field [05:48:50] [PASSED] conflict-duplicate stty: 'standard input': Inappropriate ioctl for device [05:48:50] [PASSED] conflict-not-disjoint [05:48:50] [PASSED] conflict-reg-type [05:48:50] =========== [PASSED] xe_rtp_process_to_sr_tests ============ [05:48:50] ================== xe_rtp_process_tests =================== [05:48:50] [PASSED] active1 [05:48:50] [PASSED] active2 [05:48:50] [PASSED] active-inactive [05:48:50] [PASSED] inactive-active [05:48:50] [PASSED] inactive-1st_or_active-inactive [05:48:50] [PASSED] inactive-2nd_or_active-inactive [05:48:50] [PASSED] inactive-last_or_active-inactive [05:48:50] [PASSED] inactive-no_or_active-inactive [05:48:50] ============== [PASSED] xe_rtp_process_tests =============== [05:48:50] ===================== [PASSED] xe_rtp ====================== [05:48:50] ==================== xe_wa (1 subtest) ===================== [05:48:50] ======================== xe_wa_gt ========================= [05:48:50] [PASSED] TIGERLAKE B0 [05:48:50] [PASSED] DG1 A0 [05:48:50] [PASSED] DG1 B0 [05:48:50] [PASSED] ALDERLAKE_S A0 [05:48:50] [PASSED] ALDERLAKE_S B0 [05:48:50] [PASSED] ALDERLAKE_S C0 [05:48:50] [PASSED] ALDERLAKE_S D0 [05:48:50] [PASSED] ALDERLAKE_P A0 [05:48:50] [PASSED] ALDERLAKE_P B0 [05:48:50] [PASSED] ALDERLAKE_P C0 [05:48:50] [PASSED] ALDERLAKE_S RPLS D0 [05:48:50] [PASSED] ALDERLAKE_P RPLU E0 [05:48:50] [PASSED] DG2 G10 C0 [05:48:50] [PASSED] DG2 G11 B1 [05:48:50] [PASSED] DG2 G12 A1 [05:48:50] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0 [05:48:50] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0 [05:48:50] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0 [05:48:50] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0 [05:48:50] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0 [05:48:50] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1 [05:48:50] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0 [05:48:50] ==================== [PASSED] xe_wa_gt ===================== [05:48:50] ====================== [PASSED] xe_wa ====================== [05:48:50] ============================================================ [05:48:50] Testing complete. Ran 597 tests: passed: 579, skipped: 18 [05:48:50] Elapsed time: 42.698s total, 4.331s configuring, 37.650s building, 0.667s running + /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig [05:48:50] Configuring KUnit Kernel ... Regenerating .config ... Populating config with: $ make ARCH=um O=.kunit olddefconfig [05:48:52] 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=25 [05:49:21] Starting KUnit Kernel (1/1)... [05:49:21] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [05:49:21] ============ drm_test_pick_cmdline (2 subtests) ============ [05:49:21] [PASSED] drm_test_pick_cmdline_res_1920_1080_60 [05:49:21] =============== drm_test_pick_cmdline_named =============== [05:49:21] [PASSED] NTSC [05:49:21] [PASSED] NTSC-J [05:49:21] [PASSED] PAL [05:49:21] [PASSED] PAL-M [05:49:21] =========== [PASSED] drm_test_pick_cmdline_named =========== [05:49:21] ============== [PASSED] drm_test_pick_cmdline ============== [05:49:21] == drm_test_atomic_get_connector_for_encoder (1 subtest) === [05:49:21] [PASSED] drm_test_drm_atomic_get_connector_for_encoder [05:49:21] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ==== [05:49:21] =========== drm_validate_clone_mode (2 subtests) =========== [05:49:21] ============== drm_test_check_in_clone_mode =============== [05:49:21] [PASSED] in_clone_mode [05:49:21] [PASSED] not_in_clone_mode [05:49:21] ========== [PASSED] drm_test_check_in_clone_mode =========== [05:49:21] =============== drm_test_check_valid_clones =============== [05:49:21] [PASSED] not_in_clone_mode [05:49:21] [PASSED] valid_clone [05:49:21] [PASSED] invalid_clone [05:49:21] =========== [PASSED] drm_test_check_valid_clones =========== [05:49:21] ============= [PASSED] drm_validate_clone_mode ============= [05:49:21] ============= drm_validate_modeset (1 subtest) ============= [05:49:21] [PASSED] drm_test_check_connector_changed_modeset [05:49:21] ============== [PASSED] drm_validate_modeset =============== [05:49:21] ====== drm_test_bridge_get_current_state (2 subtests) ====== [05:49:21] [PASSED] drm_test_drm_bridge_get_current_state_atomic [05:49:21] [PASSED] drm_test_drm_bridge_get_current_state_legacy [05:49:21] ======== [PASSED] drm_test_bridge_get_current_state ======== [05:49:21] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ====== [05:49:21] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic [05:49:21] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled [05:49:21] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy [05:49:21] ======== [PASSED] drm_test_bridge_helper_reset_crtc ======== [05:49:21] ============== drm_bridge_alloc (2 subtests) =============== [05:49:21] [PASSED] drm_test_drm_bridge_alloc_basic [05:49:21] [PASSED] drm_test_drm_bridge_alloc_get_put [05:49:21] ================ [PASSED] drm_bridge_alloc ================= [05:49:21] ============= drm_cmdline_parser (40 subtests) ============= [05:49:21] [PASSED] drm_test_cmdline_force_d_only [05:49:21] [PASSED] drm_test_cmdline_force_D_only_dvi [05:49:21] [PASSED] drm_test_cmdline_force_D_only_hdmi [05:49:21] [PASSED] drm_test_cmdline_force_D_only_not_digital [05:49:21] [PASSED] drm_test_cmdline_force_e_only [05:49:21] [PASSED] drm_test_cmdline_res [05:49:21] [PASSED] drm_test_cmdline_res_vesa [05:49:21] [PASSED] drm_test_cmdline_res_vesa_rblank [05:49:21] [PASSED] drm_test_cmdline_res_rblank [05:49:21] [PASSED] drm_test_cmdline_res_bpp [05:49:21] [PASSED] drm_test_cmdline_res_refresh [05:49:21] [PASSED] drm_test_cmdline_res_bpp_refresh [05:49:21] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced [05:49:21] [PASSED] drm_test_cmdline_res_bpp_refresh_margins [05:49:21] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off [05:49:21] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on [05:49:21] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog [05:49:21] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital [05:49:21] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on [05:49:21] [PASSED] drm_test_cmdline_res_margins_force_on [05:49:21] [PASSED] drm_test_cmdline_res_vesa_margins [05:49:21] [PASSED] drm_test_cmdline_name [05:49:21] [PASSED] drm_test_cmdline_name_bpp [05:49:21] [PASSED] drm_test_cmdline_name_option [05:49:21] [PASSED] drm_test_cmdline_name_bpp_option [05:49:21] [PASSED] drm_test_cmdline_rotate_0 [05:49:21] [PASSED] drm_test_cmdline_rotate_90 [05:49:21] [PASSED] drm_test_cmdline_rotate_180 [05:49:21] [PASSED] drm_test_cmdline_rotate_270 [05:49:21] [PASSED] drm_test_cmdline_hmirror [05:49:21] [PASSED] drm_test_cmdline_vmirror [05:49:21] [PASSED] drm_test_cmdline_margin_options [05:49:21] [PASSED] drm_test_cmdline_multiple_options [05:49:21] [PASSED] drm_test_cmdline_bpp_extra_and_option [05:49:21] [PASSED] drm_test_cmdline_extra_and_option [05:49:21] [PASSED] drm_test_cmdline_freestanding_options [05:49:21] [PASSED] drm_test_cmdline_freestanding_force_e_and_options [05:49:21] [PASSED] drm_test_cmdline_panel_orientation [05:49:21] ================ drm_test_cmdline_invalid ================= [05:49:21] [PASSED] margin_only [05:49:21] [PASSED] interlace_only [05:49:21] [PASSED] res_missing_x [05:49:21] [PASSED] res_missing_y [05:49:21] [PASSED] res_bad_y [05:49:21] [PASSED] res_missing_y_bpp [05:49:21] [PASSED] res_bad_bpp [05:49:21] [PASSED] res_bad_refresh [05:49:21] [PASSED] res_bpp_refresh_force_on_off [05:49:21] [PASSED] res_invalid_mode [05:49:21] [PASSED] res_bpp_wrong_place_mode [05:49:21] [PASSED] name_bpp_refresh [05:49:21] [PASSED] name_refresh [05:49:21] [PASSED] name_refresh_wrong_mode [05:49:21] [PASSED] name_refresh_invalid_mode [05:49:21] [PASSED] rotate_multiple [05:49:21] [PASSED] rotate_invalid_val [05:49:21] [PASSED] rotate_truncated [05:49:21] [PASSED] invalid_option [05:49:21] [PASSED] invalid_tv_option [05:49:21] [PASSED] truncated_tv_option [05:49:21] ============ [PASSED] drm_test_cmdline_invalid ============= [05:49:21] =============== drm_test_cmdline_tv_options =============== [05:49:21] [PASSED] NTSC [05:49:21] [PASSED] NTSC_443 [05:49:21] [PASSED] NTSC_J [05:49:21] [PASSED] PAL [05:49:21] [PASSED] PAL_M [05:49:21] [PASSED] PAL_N [05:49:21] [PASSED] SECAM [05:49:21] [PASSED] MONO_525 [05:49:21] [PASSED] MONO_625 [05:49:21] =========== [PASSED] drm_test_cmdline_tv_options =========== [05:49:21] =============== [PASSED] drm_cmdline_parser ================ [05:49:21] ========== drmm_connector_hdmi_init (20 subtests) ========== [05:49:21] [PASSED] drm_test_connector_hdmi_init_valid [05:49:21] [PASSED] drm_test_connector_hdmi_init_bpc_8 [05:49:21] [PASSED] drm_test_connector_hdmi_init_bpc_10 [05:49:21] [PASSED] drm_test_connector_hdmi_init_bpc_12 [05:49:21] [PASSED] drm_test_connector_hdmi_init_bpc_invalid [05:49:21] [PASSED] drm_test_connector_hdmi_init_bpc_null [05:49:21] [PASSED] drm_test_connector_hdmi_init_formats_empty [05:49:21] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb [05:49:21] === drm_test_connector_hdmi_init_formats_yuv420_allowed === [05:49:21] [PASSED] supported_formats=0x9 yuv420_allowed=1 [05:49:21] [PASSED] supported_formats=0x9 yuv420_allowed=0 [05:49:21] [PASSED] supported_formats=0x3 yuv420_allowed=1 [05:49:21] [PASSED] supported_formats=0x3 yuv420_allowed=0 [05:49:21] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed === [05:49:21] [PASSED] drm_test_connector_hdmi_init_null_ddc [05:49:21] [PASSED] drm_test_connector_hdmi_init_null_product [05:49:21] [PASSED] drm_test_connector_hdmi_init_null_vendor [05:49:21] [PASSED] drm_test_connector_hdmi_init_product_length_exact [05:49:21] [PASSED] drm_test_connector_hdmi_init_product_length_too_long [05:49:21] [PASSED] drm_test_connector_hdmi_init_product_valid [05:49:21] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact [05:49:21] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long [05:49:21] [PASSED] drm_test_connector_hdmi_init_vendor_valid [05:49:21] ========= drm_test_connector_hdmi_init_type_valid ========= [05:49:21] [PASSED] HDMI-A [05:49:21] [PASSED] HDMI-B [05:49:21] ===== [PASSED] drm_test_connector_hdmi_init_type_valid ===== [05:49:21] ======== drm_test_connector_hdmi_init_type_invalid ======== [05:49:21] [PASSED] Unknown [05:49:21] [PASSED] VGA [05:49:21] [PASSED] DVI-I [05:49:21] [PASSED] DVI-D [05:49:21] [PASSED] DVI-A [05:49:21] [PASSED] Composite [05:49:21] [PASSED] SVIDEO [05:49:21] [PASSED] LVDS [05:49:21] [PASSED] Component [05:49:21] [PASSED] DIN [05:49:21] [PASSED] DP [05:49:21] [PASSED] TV [05:49:21] [PASSED] eDP [05:49:21] [PASSED] Virtual [05:49:21] [PASSED] DSI [05:49:21] [PASSED] DPI [05:49:21] [PASSED] Writeback [05:49:21] [PASSED] SPI [05:49:21] [PASSED] USB [05:49:21] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ==== [05:49:21] ============ [PASSED] drmm_connector_hdmi_init ============= [05:49:21] ============= drmm_connector_init (3 subtests) ============= [05:49:21] [PASSED] drm_test_drmm_connector_init [05:49:21] [PASSED] drm_test_drmm_connector_init_null_ddc [05:49:21] ========= drm_test_drmm_connector_init_type_valid ========= [05:49:21] [PASSED] Unknown [05:49:21] [PASSED] VGA [05:49:21] [PASSED] DVI-I [05:49:21] [PASSED] DVI-D [05:49:21] [PASSED] DVI-A [05:49:21] [PASSED] Composite [05:49:21] [PASSED] SVIDEO [05:49:21] [PASSED] LVDS [05:49:21] [PASSED] Component [05:49:21] [PASSED] DIN [05:49:21] [PASSED] DP [05:49:21] [PASSED] HDMI-A [05:49:21] [PASSED] HDMI-B [05:49:21] [PASSED] TV [05:49:21] [PASSED] eDP [05:49:21] [PASSED] Virtual [05:49:21] [PASSED] DSI [05:49:21] [PASSED] DPI [05:49:21] [PASSED] Writeback [05:49:21] [PASSED] SPI [05:49:21] [PASSED] USB [05:49:21] ===== [PASSED] drm_test_drmm_connector_init_type_valid ===== [05:49:21] =============== [PASSED] drmm_connector_init =============== [05:49:21] ========= drm_connector_dynamic_init (6 subtests) ========== [05:49:21] [PASSED] drm_test_drm_connector_dynamic_init [05:49:21] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc [05:49:21] [PASSED] drm_test_drm_connector_dynamic_init_not_added [05:49:21] [PASSED] drm_test_drm_connector_dynamic_init_properties [05:49:21] ===== drm_test_drm_connector_dynamic_init_type_valid ====== [05:49:21] [PASSED] Unknown [05:49:21] [PASSED] VGA [05:49:21] [PASSED] DVI-I [05:49:21] [PASSED] DVI-D [05:49:21] [PASSED] DVI-A [05:49:21] [PASSED] Composite [05:49:21] [PASSED] SVIDEO [05:49:21] [PASSED] LVDS [05:49:21] [PASSED] Component [05:49:21] [PASSED] DIN [05:49:21] [PASSED] DP [05:49:21] [PASSED] HDMI-A [05:49:21] [PASSED] HDMI-B [05:49:21] [PASSED] TV [05:49:21] [PASSED] eDP [05:49:21] [PASSED] Virtual [05:49:21] [PASSED] DSI [05:49:21] [PASSED] DPI [05:49:21] [PASSED] Writeback [05:49:21] [PASSED] SPI [05:49:21] [PASSED] USB [05:49:21] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid == [05:49:21] ======== drm_test_drm_connector_dynamic_init_name ========= [05:49:21] [PASSED] Unknown [05:49:21] [PASSED] VGA [05:49:21] [PASSED] DVI-I [05:49:21] [PASSED] DVI-D [05:49:21] [PASSED] DVI-A [05:49:21] [PASSED] Composite [05:49:21] [PASSED] SVIDEO [05:49:21] [PASSED] LVDS [05:49:21] [PASSED] Component [05:49:21] [PASSED] DIN [05:49:21] [PASSED] DP [05:49:21] [PASSED] HDMI-A [05:49:21] [PASSED] HDMI-B [05:49:21] [PASSED] TV [05:49:21] [PASSED] eDP [05:49:21] [PASSED] Virtual [05:49:21] [PASSED] DSI [05:49:21] [PASSED] DPI [05:49:21] [PASSED] Writeback [05:49:21] [PASSED] SPI [05:49:21] [PASSED] USB [05:49:21] ==== [PASSED] drm_test_drm_connector_dynamic_init_name ===== [05:49:21] =========== [PASSED] drm_connector_dynamic_init ============ [05:49:21] ==== drm_connector_dynamic_register_early (4 subtests) ===== [05:49:21] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list [05:49:21] [PASSED] drm_test_drm_connector_dynamic_register_early_defer [05:49:21] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init [05:49:21] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object [05:49:21] ====== [PASSED] drm_connector_dynamic_register_early ======= [05:49:21] ======= drm_connector_dynamic_register (7 subtests) ======== [05:49:21] [PASSED] drm_test_drm_connector_dynamic_register_on_list [05:49:21] [PASSED] drm_test_drm_connector_dynamic_register_no_defer [05:49:21] [PASSED] drm_test_drm_connector_dynamic_register_no_init [05:49:21] [PASSED] drm_test_drm_connector_dynamic_register_mode_object [05:49:21] [PASSED] drm_test_drm_connector_dynamic_register_sysfs [05:49:21] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name [05:49:21] [PASSED] drm_test_drm_connector_dynamic_register_debugfs [05:49:21] ========= [PASSED] drm_connector_dynamic_register ========== [05:49:21] = drm_connector_attach_broadcast_rgb_property (2 subtests) = [05:49:21] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property [05:49:21] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector [05:49:21] === [PASSED] drm_connector_attach_broadcast_rgb_property === [05:49:21] ========== drm_get_tv_mode_from_name (2 subtests) ========== [05:49:21] ========== drm_test_get_tv_mode_from_name_valid =========== [05:49:21] [PASSED] NTSC [05:49:21] [PASSED] NTSC-443 [05:49:21] [PASSED] NTSC-J [05:49:21] [PASSED] PAL [05:49:21] [PASSED] PAL-M [05:49:21] [PASSED] PAL-N [05:49:21] [PASSED] SECAM [05:49:21] [PASSED] Mono [05:49:21] ====== [PASSED] drm_test_get_tv_mode_from_name_valid ======= [05:49:21] [PASSED] drm_test_get_tv_mode_from_name_truncated [05:49:21] ============ [PASSED] drm_get_tv_mode_from_name ============ [05:49:21] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) = [05:49:21] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb [05:49:21] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc [05:49:21] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1 [05:49:21] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc [05:49:21] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1 [05:49:21] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double [05:49:21] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid = [05:49:21] [PASSED] VIC 96 [05:49:21] [PASSED] VIC 97 [05:49:21] [PASSED] VIC 101 [05:49:21] [PASSED] VIC 102 [05:49:21] [PASSED] VIC 106 [05:49:21] [PASSED] VIC 107 [05:49:21] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid === [05:49:21] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc [05:49:21] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc [05:49:21] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc [05:49:21] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc [05:49:21] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc [05:49:21] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ==== [05:49:21] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) == [05:49:21] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ==== [05:49:21] [PASSED] Automatic [05:49:21] [PASSED] Full [05:49:21] [PASSED] Limited 16:235 [05:49:21] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name === [05:49:21] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid [05:49:21] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ==== [05:49:21] == drm_hdmi_connector_get_output_format_name (2 subtests) == [05:49:21] === drm_test_drm_hdmi_connector_get_output_format_name ==== [05:49:21] [PASSED] RGB [05:49:21] [PASSED] YUV 4:2:0 [05:49:21] [PASSED] YUV 4:2:2 [05:49:21] [PASSED] YUV 4:4:4 [05:49:21] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name === [05:49:21] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid [05:49:21] ==== [PASSED] drm_hdmi_connector_get_output_format_name ==== [05:49:21] ============= drm_damage_helper (21 subtests) ============== [05:49:21] [PASSED] drm_test_damage_iter_no_damage [05:49:21] [PASSED] drm_test_damage_iter_no_damage_fractional_src [05:49:21] [PASSED] drm_test_damage_iter_no_damage_src_moved [05:49:21] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved [05:49:21] [PASSED] drm_test_damage_iter_no_damage_not_visible [05:49:21] [PASSED] drm_test_damage_iter_no_damage_no_crtc [05:49:21] [PASSED] drm_test_damage_iter_no_damage_no_fb [05:49:21] [PASSED] drm_test_damage_iter_simple_damage [05:49:21] [PASSED] drm_test_damage_iter_single_damage [05:49:21] [PASSED] drm_test_damage_iter_single_damage_intersect_src [05:49:21] [PASSED] drm_test_damage_iter_single_damage_outside_src [05:49:21] [PASSED] drm_test_damage_iter_single_damage_fractional_src [05:49:21] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src [05:49:21] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src [05:49:21] [PASSED] drm_test_damage_iter_single_damage_src_moved [05:49:21] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved [05:49:21] [PASSED] drm_test_damage_iter_damage [05:49:21] [PASSED] drm_test_damage_iter_damage_one_intersect [05:49:21] [PASSED] drm_test_damage_iter_damage_one_outside [05:49:21] [PASSED] drm_test_damage_iter_damage_src_moved [05:49:21] [PASSED] drm_test_damage_iter_damage_not_visible [05:49:21] ================ [PASSED] drm_damage_helper ================ [05:49:21] ============== drm_dp_mst_helper (3 subtests) ============== [05:49:21] ============== drm_test_dp_mst_calc_pbn_mode ============== [05:49:21] [PASSED] Clock 154000 BPP 30 DSC disabled [05:49:21] [PASSED] Clock 234000 BPP 30 DSC disabled [05:49:21] [PASSED] Clock 297000 BPP 24 DSC disabled [05:49:21] [PASSED] Clock 332880 BPP 24 DSC enabled [05:49:21] [PASSED] Clock 324540 BPP 24 DSC enabled [05:49:21] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ========== [05:49:21] ============== drm_test_dp_mst_calc_pbn_div =============== [05:49:21] [PASSED] Link rate 2000000 lane count 4 [05:49:21] [PASSED] Link rate 2000000 lane count 2 [05:49:21] [PASSED] Link rate 2000000 lane count 1 [05:49:21] [PASSED] Link rate 1350000 lane count 4 [05:49:21] [PASSED] Link rate 1350000 lane count 2 [05:49:21] [PASSED] Link rate 1350000 lane count 1 [05:49:21] [PASSED] Link rate 1000000 lane count 4 [05:49:21] [PASSED] Link rate 1000000 lane count 2 [05:49:21] [PASSED] Link rate 1000000 lane count 1 [05:49:21] [PASSED] Link rate 810000 lane count 4 [05:49:21] [PASSED] Link rate 810000 lane count 2 [05:49:21] [PASSED] Link rate 810000 lane count 1 [05:49:21] [PASSED] Link rate 540000 lane count 4 [05:49:21] [PASSED] Link rate 540000 lane count 2 [05:49:21] [PASSED] Link rate 540000 lane count 1 [05:49:21] [PASSED] Link rate 270000 lane count 4 [05:49:21] [PASSED] Link rate 270000 lane count 2 [05:49:21] [PASSED] Link rate 270000 lane count 1 [05:49:21] [PASSED] Link rate 162000 lane count 4 [05:49:21] [PASSED] Link rate 162000 lane count 2 [05:49:21] [PASSED] Link rate 162000 lane count 1 [05:49:21] ========== [PASSED] drm_test_dp_mst_calc_pbn_div =========== [05:49:21] ========= drm_test_dp_mst_sideband_msg_req_decode ========= [05:49:21] [PASSED] DP_ENUM_PATH_RESOURCES with port number [05:49:21] [PASSED] DP_POWER_UP_PHY with port number [05:49:21] [PASSED] DP_POWER_DOWN_PHY with port number [05:49:21] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks [05:49:21] [PASSED] DP_ALLOCATE_PAYLOAD with port number [05:49:21] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI [05:49:21] [PASSED] DP_ALLOCATE_PAYLOAD with PBN [05:49:21] [PASSED] DP_QUERY_PAYLOAD with port number [05:49:21] [PASSED] DP_QUERY_PAYLOAD with VCPI [05:49:21] [PASSED] DP_REMOTE_DPCD_READ with port number [05:49:21] [PASSED] DP_REMOTE_DPCD_READ with DPCD address [05:49:21] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes [05:49:21] [PASSED] DP_REMOTE_DPCD_WRITE with port number [05:49:21] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address [05:49:21] [PASSED] DP_REMOTE_DPCD_WRITE with data array [05:49:21] [PASSED] DP_REMOTE_I2C_READ with port number [05:49:21] [PASSED] DP_REMOTE_I2C_READ with I2C device ID [05:49:21] [PASSED] DP_REMOTE_I2C_READ with transactions array [05:49:21] [PASSED] DP_REMOTE_I2C_WRITE with port number [05:49:21] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID [05:49:21] [PASSED] DP_REMOTE_I2C_WRITE with data array [05:49:21] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID [05:49:21] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID [05:49:21] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event [05:49:21] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event [05:49:21] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior [05:49:21] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior [05:49:21] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode ===== [05:49:21] ================ [PASSED] drm_dp_mst_helper ================ [05:49:21] ================== drm_exec (7 subtests) =================== [05:49:21] [PASSED] sanitycheck [05:49:21] [PASSED] test_lock [05:49:21] [PASSED] test_lock_unlock [05:49:21] [PASSED] test_duplicates [05:49:21] [PASSED] test_prepare [05:49:21] [PASSED] test_prepare_array [05:49:21] [PASSED] test_multiple_loops [05:49:21] ==================== [PASSED] drm_exec ===================== [05:49:21] =========== drm_format_helper_test (17 subtests) =========== [05:49:21] ============== drm_test_fb_xrgb8888_to_gray8 ============== [05:49:21] [PASSED] single_pixel_source_buffer [05:49:21] [PASSED] single_pixel_clip_rectangle [05:49:21] [PASSED] well_known_colors [05:49:21] [PASSED] destination_pitch [05:49:21] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ========== [05:49:21] ============= drm_test_fb_xrgb8888_to_rgb332 ============== [05:49:21] [PASSED] single_pixel_source_buffer [05:49:21] [PASSED] single_pixel_clip_rectangle [05:49:21] [PASSED] well_known_colors [05:49:21] [PASSED] destination_pitch [05:49:21] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ========== [05:49:21] ============= drm_test_fb_xrgb8888_to_rgb565 ============== [05:49:21] [PASSED] single_pixel_source_buffer [05:49:21] [PASSED] single_pixel_clip_rectangle [05:49:21] [PASSED] well_known_colors [05:49:21] [PASSED] destination_pitch [05:49:21] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ========== [05:49:21] ============ drm_test_fb_xrgb8888_to_xrgb1555 ============= [05:49:21] [PASSED] single_pixel_source_buffer [05:49:21] [PASSED] single_pixel_clip_rectangle [05:49:21] [PASSED] well_known_colors [05:49:21] [PASSED] destination_pitch [05:49:21] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 ========= [05:49:21] ============ drm_test_fb_xrgb8888_to_argb1555 ============= [05:49:21] [PASSED] single_pixel_source_buffer [05:49:21] [PASSED] single_pixel_clip_rectangle [05:49:21] [PASSED] well_known_colors [05:49:21] [PASSED] destination_pitch [05:49:21] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 ========= [05:49:21] ============ drm_test_fb_xrgb8888_to_rgba5551 ============= [05:49:21] [PASSED] single_pixel_source_buffer [05:49:21] [PASSED] single_pixel_clip_rectangle [05:49:21] [PASSED] well_known_colors [05:49:21] [PASSED] destination_pitch [05:49:21] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 ========= [05:49:21] ============= drm_test_fb_xrgb8888_to_rgb888 ============== [05:49:21] [PASSED] single_pixel_source_buffer [05:49:21] [PASSED] single_pixel_clip_rectangle [05:49:21] [PASSED] well_known_colors [05:49:21] [PASSED] destination_pitch [05:49:21] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ========== [05:49:21] ============= drm_test_fb_xrgb8888_to_bgr888 ============== [05:49:21] [PASSED] single_pixel_source_buffer [05:49:21] [PASSED] single_pixel_clip_rectangle [05:49:21] [PASSED] well_known_colors [05:49:21] [PASSED] destination_pitch [05:49:21] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ========== [05:49:21] ============ drm_test_fb_xrgb8888_to_argb8888 ============= [05:49:21] [PASSED] single_pixel_source_buffer [05:49:21] [PASSED] single_pixel_clip_rectangle [05:49:21] [PASSED] well_known_colors [05:49:21] [PASSED] destination_pitch [05:49:21] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 ========= [05:49:21] =========== drm_test_fb_xrgb8888_to_xrgb2101010 =========== [05:49:21] [PASSED] single_pixel_source_buffer [05:49:21] [PASSED] single_pixel_clip_rectangle [05:49:21] [PASSED] well_known_colors [05:49:21] [PASSED] destination_pitch [05:49:21] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 ======= [05:49:21] =========== drm_test_fb_xrgb8888_to_argb2101010 =========== [05:49:21] [PASSED] single_pixel_source_buffer [05:49:21] [PASSED] single_pixel_clip_rectangle [05:49:21] [PASSED] well_known_colors [05:49:21] [PASSED] destination_pitch [05:49:21] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 ======= [05:49:21] ============== drm_test_fb_xrgb8888_to_mono =============== [05:49:21] [PASSED] single_pixel_source_buffer [05:49:21] [PASSED] single_pixel_clip_rectangle [05:49:21] [PASSED] well_known_colors [05:49:21] [PASSED] destination_pitch [05:49:21] ========== [PASSED] drm_test_fb_xrgb8888_to_mono =========== [05:49:21] ==================== drm_test_fb_swab ===================== [05:49:21] [PASSED] single_pixel_source_buffer [05:49:21] [PASSED] single_pixel_clip_rectangle [05:49:21] [PASSED] well_known_colors [05:49:21] [PASSED] destination_pitch [05:49:21] ================ [PASSED] drm_test_fb_swab ================= [05:49:21] ============ drm_test_fb_xrgb8888_to_xbgr8888 ============= [05:49:21] [PASSED] single_pixel_source_buffer [05:49:21] [PASSED] single_pixel_clip_rectangle [05:49:21] [PASSED] well_known_colors [05:49:21] [PASSED] destination_pitch [05:49:21] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 ========= [05:49:21] ============ drm_test_fb_xrgb8888_to_abgr8888 ============= [05:49:21] [PASSED] single_pixel_source_buffer [05:49:21] [PASSED] single_pixel_clip_rectangle [05:49:21] [PASSED] well_known_colors [05:49:21] [PASSED] destination_pitch [05:49:21] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 ========= [05:49:21] ================= drm_test_fb_clip_offset ================= [05:49:21] [PASSED] pass through [05:49:21] [PASSED] horizontal offset [05:49:21] [PASSED] vertical offset [05:49:21] [PASSED] horizontal and vertical offset [05:49:21] [PASSED] horizontal offset (custom pitch) [05:49:21] [PASSED] vertical offset (custom pitch) [05:49:21] [PASSED] horizontal and vertical offset (custom pitch) [05:49:21] ============= [PASSED] drm_test_fb_clip_offset ============= [05:49:21] =================== drm_test_fb_memcpy ==================== [05:49:21] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258) [05:49:21] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258) [05:49:21] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559) [05:49:21] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258) [05:49:21] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258) [05:49:21] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559) [05:49:21] [PASSED] well_known_colors: XB24 little-endian (0x34324258) [05:49:21] [PASSED] well_known_colors: XRA8 little-endian (0x38415258) [05:49:21] [PASSED] well_known_colors: YU24 little-endian (0x34325559) [05:49:21] [PASSED] destination_pitch: XB24 little-endian (0x34324258) [05:49:21] [PASSED] destination_pitch: XRA8 little-endian (0x38415258) [05:49:21] [PASSED] destination_pitch: YU24 little-endian (0x34325559) [05:49:21] =============== [PASSED] drm_test_fb_memcpy ================ [05:49:21] ============= [PASSED] drm_format_helper_test ============== [05:49:21] ================= drm_format (18 subtests) ================= [05:49:21] [PASSED] drm_test_format_block_width_invalid [05:49:21] [PASSED] drm_test_format_block_width_one_plane [05:49:21] [PASSED] drm_test_format_block_width_two_plane [05:49:21] [PASSED] drm_test_format_block_width_three_plane [05:49:21] [PASSED] drm_test_format_block_width_tiled [05:49:21] [PASSED] drm_test_format_block_height_invalid [05:49:21] [PASSED] drm_test_format_block_height_one_plane [05:49:21] [PASSED] drm_test_format_block_height_two_plane [05:49:21] [PASSED] drm_test_format_block_height_three_plane [05:49:21] [PASSED] drm_test_format_block_height_tiled [05:49:21] [PASSED] drm_test_format_min_pitch_invalid [05:49:21] [PASSED] drm_test_format_min_pitch_one_plane_8bpp [05:49:21] [PASSED] drm_test_format_min_pitch_one_plane_16bpp [05:49:21] [PASSED] drm_test_format_min_pitch_one_plane_24bpp [05:49:21] [PASSED] drm_test_format_min_pitch_one_plane_32bpp [05:49:21] [PASSED] drm_test_format_min_pitch_two_plane [05:49:21] [PASSED] drm_test_format_min_pitch_three_plane_8bpp [05:49:21] [PASSED] drm_test_format_min_pitch_tiled [05:49:21] =================== [PASSED] drm_format ==================== [05:49:21] ============== drm_framebuffer (10 subtests) =============== [05:49:21] ========== drm_test_framebuffer_check_src_coords ========== [05:49:21] [PASSED] Success: source fits into fb [05:49:21] [PASSED] Fail: overflowing fb with x-axis coordinate [05:49:21] [PASSED] Fail: overflowing fb with y-axis coordinate [05:49:21] [PASSED] Fail: overflowing fb with source width [05:49:21] [PASSED] Fail: overflowing fb with source height [05:49:21] ====== [PASSED] drm_test_framebuffer_check_src_coords ====== [05:49:21] [PASSED] drm_test_framebuffer_cleanup [05:49:21] =============== drm_test_framebuffer_create =============== [05:49:21] [PASSED] ABGR8888 normal sizes [05:49:21] [PASSED] ABGR8888 max sizes [05:49:21] [PASSED] ABGR8888 pitch greater than min required [05:49:21] [PASSED] ABGR8888 pitch less than min required [05:49:21] [PASSED] ABGR8888 Invalid width [05:49:21] [PASSED] ABGR8888 Invalid buffer handle [05:49:21] [PASSED] No pixel format [05:49:21] [PASSED] ABGR8888 Width 0 [05:49:21] [PASSED] ABGR8888 Height 0 [05:49:21] [PASSED] ABGR8888 Out of bound height * pitch combination [05:49:21] [PASSED] ABGR8888 Large buffer offset [05:49:21] [PASSED] ABGR8888 Buffer offset for inexistent plane [05:49:21] [PASSED] ABGR8888 Invalid flag [05:49:21] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers [05:49:21] [PASSED] ABGR8888 Valid buffer modifier [05:49:21] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE) [05:49:21] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS [05:49:21] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS [05:49:21] [PASSED] NV12 Normal sizes [05:49:21] [PASSED] NV12 Max sizes [05:49:21] [PASSED] NV12 Invalid pitch [05:49:21] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag [05:49:21] [PASSED] NV12 different modifier per-plane [05:49:21] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE [05:49:21] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS [05:49:21] [PASSED] NV12 Modifier for inexistent plane [05:49:21] [PASSED] NV12 Handle for inexistent plane [05:49:21] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS [05:49:21] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier [05:49:21] [PASSED] YVU420 Normal sizes [05:49:21] [PASSED] YVU420 Max sizes [05:49:21] [PASSED] YVU420 Invalid pitch [05:49:21] [PASSED] YVU420 Different pitches [05:49:21] [PASSED] YVU420 Different buffer offsets/pitches [05:49:21] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS [05:49:21] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS [05:49:21] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS [05:49:21] [PASSED] YVU420 Valid modifier [05:49:21] [PASSED] YVU420 Different modifiers per plane [05:49:21] [PASSED] YVU420 Modifier for inexistent plane [05:49:21] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR) [05:49:21] [PASSED] X0L2 Normal sizes [05:49:21] [PASSED] X0L2 Max sizes [05:49:21] [PASSED] X0L2 Invalid pitch [05:49:21] [PASSED] X0L2 Pitch greater than minimum required [05:49:21] [PASSED] X0L2 Handle for inexistent plane [05:49:21] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set [05:49:21] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set [05:49:21] [PASSED] X0L2 Valid modifier [05:49:21] [PASSED] X0L2 Modifier for inexistent plane [05:49:21] =========== [PASSED] drm_test_framebuffer_create =========== [05:49:21] [PASSED] drm_test_framebuffer_free [05:49:21] [PASSED] drm_test_framebuffer_init [05:49:21] [PASSED] drm_test_framebuffer_init_bad_format [05:49:21] [PASSED] drm_test_framebuffer_init_dev_mismatch [05:49:21] [PASSED] drm_test_framebuffer_lookup [05:49:21] [PASSED] drm_test_framebuffer_lookup_inexistent [05:49:21] [PASSED] drm_test_framebuffer_modifiers_not_supported [05:49:21] ================= [PASSED] drm_framebuffer ================= [05:49:21] ================ drm_gem_shmem (8 subtests) ================ [05:49:21] [PASSED] drm_gem_shmem_test_obj_create [05:49:21] [PASSED] drm_gem_shmem_test_obj_create_private [05:49:21] [PASSED] drm_gem_shmem_test_pin_pages [05:49:21] [PASSED] drm_gem_shmem_test_vmap [05:49:21] [PASSED] drm_gem_shmem_test_get_sg_table [05:49:21] [PASSED] drm_gem_shmem_test_get_pages_sgt [05:49:21] [PASSED] drm_gem_shmem_test_madvise [05:49:21] [PASSED] drm_gem_shmem_test_purge [05:49:21] ================== [PASSED] drm_gem_shmem ================== [05:49:21] === drm_atomic_helper_connector_hdmi_check (27 subtests) === [05:49:21] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode [05:49:21] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1 [05:49:21] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode [05:49:21] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1 [05:49:21] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode [05:49:21] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1 [05:49:21] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 ======= [05:49:21] [PASSED] Automatic [05:49:21] [PASSED] Full [05:49:21] [PASSED] Limited 16:235 [05:49:21] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 === [05:49:21] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed [05:49:21] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed [05:49:21] [PASSED] drm_test_check_disable_connector [05:49:21] [PASSED] drm_test_check_hdmi_funcs_reject_rate [05:49:21] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb [05:49:21] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420 [05:49:21] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422 [05:49:21] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420 [05:49:21] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420 [05:49:21] [PASSED] drm_test_check_output_bpc_crtc_mode_changed [05:49:21] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed [05:49:21] [PASSED] drm_test_check_output_bpc_dvi [05:49:21] [PASSED] drm_test_check_output_bpc_format_vic_1 [05:49:21] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only [05:49:21] [PASSED] drm_test_check_output_bpc_format_display_rgb_only [05:49:21] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only [05:49:21] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only [05:49:21] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc [05:49:21] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc [05:49:21] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc [05:49:21] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ====== [05:49:21] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ==== [05:49:21] [PASSED] drm_test_check_broadcast_rgb_value [05:49:21] [PASSED] drm_test_check_bpc_8_value [05:49:21] [PASSED] drm_test_check_bpc_10_value [05:49:21] [PASSED] drm_test_check_bpc_12_value [05:49:21] [PASSED] drm_test_check_format_value [05:49:21] [PASSED] drm_test_check_tmds_char_value [05:49:21] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ====== [05:49:21] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) = [05:49:21] [PASSED] drm_test_check_mode_valid [05:49:21] [PASSED] drm_test_check_mode_valid_reject [05:49:21] [PASSED] drm_test_check_mode_valid_reject_rate [05:49:21] [PASSED] drm_test_check_mode_valid_reject_max_clock [05:49:21] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid === [05:49:21] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) = [05:49:21] [PASSED] drm_test_check_infoframes [05:49:21] [PASSED] drm_test_check_reject_avi_infoframe [05:49:21] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8 [05:49:21] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10 [05:49:21] [PASSED] drm_test_check_reject_audio_infoframe [05:49:21] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes === [05:49:21] ================= drm_managed (2 subtests) ================= [05:49:21] [PASSED] drm_test_managed_release_action [05:49:21] [PASSED] drm_test_managed_run_action [05:49:21] =================== [PASSED] drm_managed =================== [05:49:21] =================== drm_mm (6 subtests) ==================== [05:49:21] [PASSED] drm_test_mm_init [05:49:21] [PASSED] drm_test_mm_debug [05:49:21] [PASSED] drm_test_mm_align32 [05:49:21] [PASSED] drm_test_mm_align64 [05:49:21] [PASSED] drm_test_mm_lowest [05:49:21] [PASSED] drm_test_mm_highest [05:49:21] ===================== [PASSED] drm_mm ====================== [05:49:21] ============= drm_modes_analog_tv (5 subtests) ============= [05:49:21] [PASSED] drm_test_modes_analog_tv_mono_576i [05:49:21] [PASSED] drm_test_modes_analog_tv_ntsc_480i [05:49:21] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined [05:49:21] [PASSED] drm_test_modes_analog_tv_pal_576i [05:49:21] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined [05:49:21] =============== [PASSED] drm_modes_analog_tv =============== [05:49:21] ============== drm_plane_helper (2 subtests) =============== [05:49:21] =============== drm_test_check_plane_state ================ [05:49:21] [PASSED] clipping_simple [05:49:21] [PASSED] clipping_rotate_reflect [05:49:21] [PASSED] positioning_simple [05:49:21] [PASSED] upscaling [05:49:21] [PASSED] downscaling [05:49:21] [PASSED] rounding1 [05:49:21] [PASSED] rounding2 [05:49:21] [PASSED] rounding3 [05:49:21] [PASSED] rounding4 [05:49:21] =========== [PASSED] drm_test_check_plane_state ============ [05:49:21] =========== drm_test_check_invalid_plane_state ============ [05:49:21] [PASSED] positioning_invalid [05:49:21] [PASSED] upscaling_invalid [05:49:21] [PASSED] downscaling_invalid [05:49:21] ======= [PASSED] drm_test_check_invalid_plane_state ======== [05:49:21] ================ [PASSED] drm_plane_helper ================= [05:49:21] ====== drm_connector_helper_tv_get_modes (1 subtest) ======= [05:49:21] ====== drm_test_connector_helper_tv_get_modes_check ======= [05:49:21] [PASSED] None [05:49:21] [PASSED] PAL [05:49:21] [PASSED] NTSC [05:49:21] [PASSED] Both, NTSC Default [05:49:21] [PASSED] Both, PAL Default [05:49:21] [PASSED] Both, NTSC Default, with PAL on command-line [05:49:21] [PASSED] Both, PAL Default, with NTSC on command-line [05:49:21] == [PASSED] drm_test_connector_helper_tv_get_modes_check === [05:49:21] ======== [PASSED] drm_connector_helper_tv_get_modes ======== [05:49:21] ================== drm_rect (9 subtests) =================== [05:49:21] [PASSED] drm_test_rect_clip_scaled_div_by_zero [05:49:21] [PASSED] drm_test_rect_clip_scaled_not_clipped [05:49:21] [PASSED] drm_test_rect_clip_scaled_clipped [05:49:21] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned [05:49:21] ================= drm_test_rect_intersect ================= [05:49:21] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0 [05:49:21] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1 [05:49:21] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0 [05:49:21] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1 [05:49:21] [PASSED] right x left: 2x1+0+0 x 3x1+1+0 [05:49:21] [PASSED] left x right: 3x1+1+0 x 2x1+0+0 [05:49:21] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1 [05:49:21] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0 [05:49:21] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1 [05:49:21] [PASSED] touching side: 1x1+0+0 x 1x1+1+0 [05:49:21] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0 [05:49:21] [PASSED] inside another: 2x2+0+0 x 1x1+1+1 [05:49:21] [PASSED] far away: 1x1+0+0 x 1x1+3+6 [05:49:21] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10 [05:49:21] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10 [05:49:21] ============= [PASSED] drm_test_rect_intersect ============= [05:49:21] ================ drm_test_rect_calc_hscale ================ [05:49:21] [PASSED] normal use [05:49:21] [PASSED] out of max range [05:49:21] [PASSED] out of min range [05:49:21] [PASSED] zero dst [05:49:21] [PASSED] negative src [05:49:21] [PASSED] negative dst [05:49:21] ============ [PASSED] drm_test_rect_calc_hscale ============ [05:49:21] ================ drm_test_rect_calc_vscale ================ [05:49:21] [PASSED] normal use [05:49:21] [PASSED] out of max range [05:49:21] [PASSED] out of min range [05:49:21] [PASSED] zero dst [05:49:21] [PASSED] negative src [05:49:21] [PASSED] negative dst stty: 'standard input': Inappropriate ioctl for device [05:49:21] ============ [PASSED] drm_test_rect_calc_vscale ============ [05:49:21] ================== drm_test_rect_rotate =================== [05:49:21] [PASSED] reflect-x [05:49:21] [PASSED] reflect-y [05:49:21] [PASSED] rotate-0 [05:49:21] [PASSED] rotate-90 [05:49:21] [PASSED] rotate-180 [05:49:21] [PASSED] rotate-270 [05:49:21] ============== [PASSED] drm_test_rect_rotate =============== [05:49:21] ================ drm_test_rect_rotate_inv ================= [05:49:21] [PASSED] reflect-x [05:49:21] [PASSED] reflect-y [05:49:21] [PASSED] rotate-0 [05:49:21] [PASSED] rotate-90 [05:49:21] [PASSED] rotate-180 [05:49:21] [PASSED] rotate-270 [05:49:21] ============ [PASSED] drm_test_rect_rotate_inv ============= [05:49:21] ==================== [PASSED] drm_rect ===================== [05:49:21] ============ drm_sysfb_modeset_test (1 subtest) ============ [05:49:21] ============ drm_test_sysfb_build_fourcc_list ============= [05:49:21] [PASSED] no native formats [05:49:21] [PASSED] XRGB8888 as native format [05:49:21] [PASSED] remove duplicates [05:49:21] [PASSED] convert alpha formats [05:49:21] [PASSED] random formats [05:49:21] ======== [PASSED] drm_test_sysfb_build_fourcc_list ========= [05:49:21] ============= [PASSED] drm_sysfb_modeset_test ============== [05:49:21] ================== drm_fixp (2 subtests) =================== [05:49:21] [PASSED] drm_test_int2fixp [05:49:21] [PASSED] drm_test_sm2fixp [05:49:21] ==================== [PASSED] drm_fixp ===================== [05:49:21] ============================================================ [05:49:21] Testing complete. Ran 621 tests: passed: 621 [05:49:21] Elapsed time: 30.752s total, 1.638s configuring, 28.946s building, 0.117s running + /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig [05:49:21] Configuring KUnit Kernel ... Regenerating .config ... Populating config with: $ make ARCH=um O=.kunit olddefconfig [05:49: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=25 [05:49:32] Starting KUnit Kernel (1/1)... [05:49:32] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [05:49:32] ================= ttm_device (5 subtests) ================== [05:49:32] [PASSED] ttm_device_init_basic [05:49:32] [PASSED] ttm_device_init_multiple [05:49:32] [PASSED] ttm_device_fini_basic [05:49:32] [PASSED] ttm_device_init_no_vma_man [05:49:32] ================== ttm_device_init_pools ================== [05:49:32] [PASSED] No DMA allocations, no DMA32 required [05:49:32] [PASSED] DMA allocations, DMA32 required [05:49:32] [PASSED] No DMA allocations, DMA32 required [05:49:32] [PASSED] DMA allocations, no DMA32 required [05:49:32] ============== [PASSED] ttm_device_init_pools ============== [05:49:32] =================== [PASSED] ttm_device ==================== [05:49:32] ================== ttm_pool (8 subtests) =================== [05:49:32] ================== ttm_pool_alloc_basic =================== [05:49:32] [PASSED] One page [05:49:32] [PASSED] More than one page [05:49:32] [PASSED] Above the allocation limit [05:49:32] [PASSED] One page, with coherent DMA mappings enabled [05:49:32] [PASSED] Above the allocation limit, with coherent DMA mappings enabled [05:49:32] ============== [PASSED] ttm_pool_alloc_basic =============== [05:49:32] ============== ttm_pool_alloc_basic_dma_addr ============== [05:49:32] [PASSED] One page [05:49:32] [PASSED] More than one page [05:49:32] [PASSED] Above the allocation limit [05:49:32] [PASSED] One page, with coherent DMA mappings enabled [05:49:32] [PASSED] Above the allocation limit, with coherent DMA mappings enabled [05:49:32] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ========== [05:49:32] [PASSED] ttm_pool_alloc_order_caching_match [05:49:32] [PASSED] ttm_pool_alloc_caching_mismatch [05:49:32] [PASSED] ttm_pool_alloc_order_mismatch [05:49:32] [PASSED] ttm_pool_free_dma_alloc [05:49:32] [PASSED] ttm_pool_free_no_dma_alloc [05:49:32] [PASSED] ttm_pool_fini_basic [05:49:32] ==================== [PASSED] ttm_pool ===================== [05:49:32] ================ ttm_resource (8 subtests) ================= [05:49:32] ================= ttm_resource_init_basic ================= [05:49:32] [PASSED] Init resource in TTM_PL_SYSTEM [05:49:32] [PASSED] Init resource in TTM_PL_VRAM [05:49:32] [PASSED] Init resource in a private placement [05:49:32] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags [05:49:32] ============= [PASSED] ttm_resource_init_basic ============= [05:49:32] [PASSED] ttm_resource_init_pinned [05:49:32] [PASSED] ttm_resource_fini_basic [05:49:32] [PASSED] ttm_resource_manager_init_basic [05:49:32] [PASSED] ttm_resource_manager_usage_basic [05:49:32] [PASSED] ttm_resource_manager_set_used_basic [05:49:32] [PASSED] ttm_sys_man_alloc_basic [05:49:32] [PASSED] ttm_sys_man_free_basic [05:49:32] ================== [PASSED] ttm_resource =================== [05:49:32] =================== ttm_tt (15 subtests) =================== [05:49:32] ==================== ttm_tt_init_basic ==================== [05:49:32] [PASSED] Page-aligned size [05:49:32] [PASSED] Extra pages requested [05:49:32] ================ [PASSED] ttm_tt_init_basic ================ [05:49:32] [PASSED] ttm_tt_init_misaligned [05:49:32] [PASSED] ttm_tt_fini_basic [05:49:32] [PASSED] ttm_tt_fini_sg [05:49:32] [PASSED] ttm_tt_fini_shmem [05:49:32] [PASSED] ttm_tt_create_basic [05:49:32] [PASSED] ttm_tt_create_invalid_bo_type [05:49:32] [PASSED] ttm_tt_create_ttm_exists [05:49:32] [PASSED] ttm_tt_create_failed [05:49:32] [PASSED] ttm_tt_destroy_basic [05:49:32] [PASSED] ttm_tt_populate_null_ttm [05:49:32] [PASSED] ttm_tt_populate_populated_ttm [05:49:32] [PASSED] ttm_tt_unpopulate_basic [05:49:32] [PASSED] ttm_tt_unpopulate_empty_ttm [05:49:32] [PASSED] ttm_tt_swapin_basic [05:49:32] ===================== [PASSED] ttm_tt ====================== [05:49:32] =================== ttm_bo (14 subtests) =================== [05:49:32] =========== ttm_bo_reserve_optimistic_no_ticket =========== [05:49:32] [PASSED] Cannot be interrupted and sleeps [05:49:32] [PASSED] Cannot be interrupted, locks straight away [05:49:32] [PASSED] Can be interrupted, sleeps [05:49:32] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket ======= [05:49:32] [PASSED] ttm_bo_reserve_locked_no_sleep [05:49:32] [PASSED] ttm_bo_reserve_no_wait_ticket [05:49:32] [PASSED] ttm_bo_reserve_double_resv [05:49:32] [PASSED] ttm_bo_reserve_interrupted [05:49:32] [PASSED] ttm_bo_reserve_deadlock [05:49:32] [PASSED] ttm_bo_unreserve_basic [05:49:32] [PASSED] ttm_bo_unreserve_pinned [05:49:32] [PASSED] ttm_bo_unreserve_bulk [05:49:32] [PASSED] ttm_bo_fini_basic [05:49:32] [PASSED] ttm_bo_fini_shared_resv [05:49:32] [PASSED] ttm_bo_pin_basic [05:49:32] [PASSED] ttm_bo_pin_unpin_resource [05:49:32] [PASSED] ttm_bo_multiple_pin_one_unpin [05:49:32] ===================== [PASSED] ttm_bo ====================== [05:49:32] ============== ttm_bo_validate (21 subtests) =============== [05:49:32] ============== ttm_bo_init_reserved_sys_man =============== [05:49:32] [PASSED] Buffer object for userspace [05:49:32] [PASSED] Kernel buffer object [05:49:32] [PASSED] Shared buffer object [05:49:32] ========== [PASSED] ttm_bo_init_reserved_sys_man =========== [05:49:32] ============== ttm_bo_init_reserved_mock_man ============== [05:49:32] [PASSED] Buffer object for userspace [05:49:32] [PASSED] Kernel buffer object [05:49:32] [PASSED] Shared buffer object [05:49:32] ========== [PASSED] ttm_bo_init_reserved_mock_man ========== [05:49:32] [PASSED] ttm_bo_init_reserved_resv [05:49:32] ================== ttm_bo_validate_basic ================== [05:49:32] [PASSED] Buffer object for userspace [05:49:32] [PASSED] Kernel buffer object [05:49:32] [PASSED] Shared buffer object [05:49:32] ============== [PASSED] ttm_bo_validate_basic ============== [05:49:32] [PASSED] ttm_bo_validate_invalid_placement [05:49:32] ============= ttm_bo_validate_same_placement ============== [05:49:32] [PASSED] System manager [05:49:32] [PASSED] VRAM manager [05:49:32] ========= [PASSED] ttm_bo_validate_same_placement ========== [05:49:32] [PASSED] ttm_bo_validate_failed_alloc [05:49:32] [PASSED] ttm_bo_validate_pinned [05:49:32] [PASSED] ttm_bo_validate_busy_placement [05:49:32] ================ ttm_bo_validate_multihop ================= [05:49:32] [PASSED] Buffer object for userspace [05:49:32] [PASSED] Kernel buffer object [05:49:32] [PASSED] Shared buffer object [05:49:32] ============ [PASSED] ttm_bo_validate_multihop ============= [05:49:32] ========== ttm_bo_validate_no_placement_signaled ========== [05:49:32] [PASSED] Buffer object in system domain, no page vector [05:49:32] [PASSED] Buffer object in system domain with an existing page vector [05:49:32] ====== [PASSED] ttm_bo_validate_no_placement_signaled ====== [05:49:32] ======== ttm_bo_validate_no_placement_not_signaled ======== [05:49:32] [PASSED] Buffer object for userspace [05:49:32] [PASSED] Kernel buffer object [05:49:32] [PASSED] Shared buffer object [05:49:32] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ==== [05:49:32] [PASSED] ttm_bo_validate_move_fence_signaled [05:49:32] ========= ttm_bo_validate_move_fence_not_signaled ========= [05:49:32] [PASSED] Waits for GPU [05:49:32] [PASSED] Tries to lock straight away [05:49:32] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled ===== [05:49:32] [PASSED] ttm_bo_validate_happy_evict [05:49:32] [PASSED] ttm_bo_validate_all_pinned_evict [05:49:32] [PASSED] ttm_bo_validate_allowed_only_evict [05:49:32] [PASSED] ttm_bo_validate_deleted_evict [05:49:32] [PASSED] ttm_bo_validate_busy_domain_evict [05:49:32] [PASSED] ttm_bo_validate_evict_gutting [05:49:32] [PASSED] ttm_bo_validate_recrusive_evict stty: 'standard input': Inappropriate ioctl for device [05:49:32] ================= [PASSED] ttm_bo_validate ================= [05:49:32] ============================================================ [05:49:32] Testing complete. Ran 101 tests: passed: 101 [05:49:32] Elapsed time: 11.245s total, 1.648s configuring, 9.331s building, 0.231s 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 platform/x86/intel/vsec: Prep for ACPI PMT discovery (rev7) 2026-03-03 5:19 [PATCH v7 0/6] platform/x86/intel/vsec: Prep for ACPI PMT discovery David E. Box ` (6 preceding siblings ...) 2026-03-03 5:49 ` ✓ CI.KUnit: success for platform/x86/intel/vsec: Prep for ACPI PMT discovery (rev7) Patchwork @ 2026-03-03 6:35 ` Patchwork 2026-03-03 15:15 ` ✓ Xe.CI.FULL: " Patchwork 8 siblings, 0 replies; 13+ messages in thread From: Patchwork @ 2026-03-03 6:35 UTC (permalink / raw) To: David E. Box; +Cc: intel-xe [-- Attachment #1: Type: text/plain, Size: 2146 bytes --] == Series Details == Series: platform/x86/intel/vsec: Prep for ACPI PMT discovery (rev7) URL : https://patchwork.freedesktop.org/series/159716/ State : success == Summary == CI Bug Log - changes from xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143_BAT -> xe-pw-159716v7_BAT ==================================================== Summary ------- **SUCCESS** No regressions found. Participating hosts (13 -> 14) ------------------------------ Additional (1): bat-bmg-3 Known issues ------------ Here are the changes found in xe-pw-159716v7_BAT that come from known issues: ### IGT changes ### #### Issues hit #### * igt@xe_module_load@load: - bat-bmg-3: NOTRUN -> [DMESG-WARN][1] ([Intel XE#7433]) [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/bat-bmg-3/igt@xe_module_load@load.html * igt@xe_peer2peer@read@read-gpua-vram01-gpub-system-p2p: - bat-bmg-3: NOTRUN -> [SKIP][2] ([Intel XE#6566]) +3 other tests skip [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/bat-bmg-3/igt@xe_peer2peer@read@read-gpua-vram01-gpub-system-p2p.html * igt@xe_waitfence@abstime: - bat-dg2-oem2: [PASS][3] -> [TIMEOUT][4] ([Intel XE#6506]) [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/bat-dg2-oem2/igt@xe_waitfence@abstime.html [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/bat-dg2-oem2/igt@xe_waitfence@abstime.html [Intel XE#6506]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6506 [Intel XE#6566]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6566 [Intel XE#7433]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7433 Build changes ------------- * Linux: xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143 -> xe-pw-159716v7 IGT_8777: a50285a68dbef0fe11140adef4016a756f57b324 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143: 69ee18cb718c8e62d92b25235881fc562e71a143 xe-pw-159716v7: 159716v7 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/index.html [-- Attachment #2: Type: text/html, Size: 2768 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* ✓ Xe.CI.FULL: success for platform/x86/intel/vsec: Prep for ACPI PMT discovery (rev7) 2026-03-03 5:19 [PATCH v7 0/6] platform/x86/intel/vsec: Prep for ACPI PMT discovery David E. Box ` (7 preceding siblings ...) 2026-03-03 6:35 ` ✓ Xe.CI.BAT: " Patchwork @ 2026-03-03 15:15 ` Patchwork 8 siblings, 0 replies; 13+ messages in thread From: Patchwork @ 2026-03-03 15:15 UTC (permalink / raw) To: David E. Box; +Cc: intel-xe [-- Attachment #1: Type: text/plain, Size: 10564 bytes --] == Series Details == Series: platform/x86/intel/vsec: Prep for ACPI PMT discovery (rev7) URL : https://patchwork.freedesktop.org/series/159716/ State : success == Summary == CI Bug Log - changes from xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143_FULL -> xe-pw-159716v7_FULL ==================================================== Summary ------- **SUCCESS** No regressions found. Participating hosts (2 -> 2) ------------------------------ No changes in participating hosts Known issues ------------ Here are the changes found in xe-pw-159716v7_FULL that come from known issues: ### IGT changes ### #### Issues hit #### * igt@kms_flip@flip-vs-expired-vblank-interruptible: - shard-lnl: [PASS][1] -> [FAIL][2] ([Intel XE#301]) +1 other test fail [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank-interruptible.html [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank-interruptible.html #### Possible fixes #### * igt@kms_async_flips@async-flip-with-page-flip-events-linear-atomic@pipe-c-edp-1: - shard-lnl: [FAIL][3] ([Intel XE#6054] / [Intel XE#7509]) -> [PASS][4] +3 other tests pass [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-lnl-8/igt@kms_async_flips@async-flip-with-page-flip-events-linear-atomic@pipe-c-edp-1.html [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-lnl-7/igt@kms_async_flips@async-flip-with-page-flip-events-linear-atomic@pipe-c-edp-1.html * igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1: - shard-lnl: [FAIL][5] ([Intel XE#2142]) -> [PASS][6] +1 other test pass [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-lnl-7/igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1.html [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-lnl-6/igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1.html * igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-multi-vma: - shard-lnl: [FAIL][7] ([Intel XE#5625]) -> [PASS][8] [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-lnl-5/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-multi-vma.html [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-lnl-5/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-multi-vma.html #### Warnings #### * igt@xe_module_load@load: - shard-bmg: ([DMESG-WARN][9], [DMESG-WARN][10], [DMESG-WARN][11], [PASS][12], [DMESG-WARN][13], [DMESG-WARN][14], [DMESG-WARN][15], [DMESG-WARN][16], [DMESG-WARN][17], [DMESG-WARN][18], [DMESG-WARN][19], [DMESG-WARN][20], [DMESG-WARN][21], [DMESG-WARN][22], [DMESG-WARN][23], [DMESG-WARN][24], [DMESG-WARN][25], [DMESG-WARN][26], [DMESG-WARN][27], [DMESG-WARN][28], [DMESG-WARN][29], [DMESG-WARN][30], [DMESG-WARN][31], [PASS][32], [DMESG-WARN][33]) ([Intel XE#7433]) -> ([DMESG-WARN][34], [DMESG-WARN][35], [DMESG-WARN][36], [DMESG-WARN][37], [DMESG-WARN][38], [DMESG-WARN][39], [DMESG-WARN][40], [DMESG-WARN][41], [DMESG-WARN][42], [DMESG-WARN][43], [DMESG-WARN][44], [DMESG-WARN][45], [DMESG-WARN][46], [DMESG-WARN][47], [DMESG-WARN][48], [DMESG-WARN][49], [DMESG-WARN][50], [DMESG-WARN][51], [DMESG-WARN][52], [DMESG-WARN][53], [DMESG-WARN][54], [DMESG-WARN][55], [DMESG-WARN][56], [DMESG-WARN][57]) ([Intel XE#7433]) [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-bmg-2/igt@xe_module_load@load.html [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-bmg-5/igt@xe_module_load@load.html [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-bmg-5/igt@xe_module_load@load.html [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-bmg-3/igt@xe_module_load@load.html [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-bmg-6/igt@xe_module_load@load.html [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-bmg-6/igt@xe_module_load@load.html [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-bmg-6/igt@xe_module_load@load.html [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-bmg-8/igt@xe_module_load@load.html [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-bmg-8/igt@xe_module_load@load.html [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-bmg-8/igt@xe_module_load@load.html [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-bmg-4/igt@xe_module_load@load.html [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-bmg-4/igt@xe_module_load@load.html [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-bmg-4/igt@xe_module_load@load.html [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-bmg-2/igt@xe_module_load@load.html [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-bmg-2/igt@xe_module_load@load.html [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-bmg-9/igt@xe_module_load@load.html [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-bmg-9/igt@xe_module_load@load.html [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-bmg-9/igt@xe_module_load@load.html [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-bmg-7/igt@xe_module_load@load.html [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-bmg-7/igt@xe_module_load@load.html [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-bmg-7/igt@xe_module_load@load.html [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-bmg-1/igt@xe_module_load@load.html [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-bmg-1/igt@xe_module_load@load.html [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-bmg-3/igt@xe_module_load@load.html [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143/shard-bmg-1/igt@xe_module_load@load.html [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-bmg-6/igt@xe_module_load@load.html [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-bmg-5/igt@xe_module_load@load.html [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-bmg-5/igt@xe_module_load@load.html [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-bmg-3/igt@xe_module_load@load.html [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-bmg-3/igt@xe_module_load@load.html [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-bmg-3/igt@xe_module_load@load.html [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-bmg-6/igt@xe_module_load@load.html [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-bmg-5/igt@xe_module_load@load.html [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-bmg-4/igt@xe_module_load@load.html [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-bmg-4/igt@xe_module_load@load.html [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-bmg-4/igt@xe_module_load@load.html [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-bmg-8/igt@xe_module_load@load.html [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-bmg-8/igt@xe_module_load@load.html [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-bmg-8/igt@xe_module_load@load.html [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-bmg-1/igt@xe_module_load@load.html [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-bmg-1/igt@xe_module_load@load.html [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-bmg-7/igt@xe_module_load@load.html [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-bmg-7/igt@xe_module_load@load.html [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-bmg-7/igt@xe_module_load@load.html [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-bmg-9/igt@xe_module_load@load.html [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-bmg-9/igt@xe_module_load@load.html [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-bmg-2/igt@xe_module_load@load.html [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-bmg-2/igt@xe_module_load@load.html [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/shard-bmg-2/igt@xe_module_load@load.html [Intel XE#2142]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2142 [Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301 [Intel XE#5625]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5625 [Intel XE#6054]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6054 [Intel XE#7433]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7433 [Intel XE#7509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7509 Build changes ------------- * Linux: xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143 -> xe-pw-159716v7 IGT_8777: a50285a68dbef0fe11140adef4016a756f57b324 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git xe-4646-69ee18cb718c8e62d92b25235881fc562e71a143: 69ee18cb718c8e62d92b25235881fc562e71a143 xe-pw-159716v7: 159716v7 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159716v7/index.html [-- Attachment #2: Type: text/html, Size: 11324 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2026-03-04 20:15 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-03-03 5:19 [PATCH v7 0/6] platform/x86/intel/vsec: Prep for ACPI PMT discovery David E. Box 2026-03-03 5:19 ` [PATCH v7 1/6] platform/x86/intel/vsec: Refactor base_addr handling David E. Box 2026-03-04 20:06 ` Ruhl, Michael J 2026-03-03 5:19 ` [PATCH v7 2/6] platform/x86/intel/vsec: Make driver_data info const David E. Box 2026-03-04 20:08 ` Ruhl, Michael J 2026-03-03 5:19 ` [PATCH v7 3/6] platform/x86/intel/vsec: Decouple add/link helpers from PCI David E. Box 2026-03-04 20:15 ` Ruhl, Michael J 2026-03-03 5:19 ` [PATCH v7 4/6] platform/x86/intel/vsec: Switch exported helpers from pci_dev to device David E. Box 2026-03-03 5:19 ` [PATCH v7 5/6] platform/x86/intel/vsec: Return real error codes from registration path David E. Box 2026-03-03 5:19 ` [PATCH v7 6/6] platform/x86/intel/vsec: Plumb ACPI PMT discovery tables through vsec David E. Box 2026-03-03 5:49 ` ✓ CI.KUnit: success for platform/x86/intel/vsec: Prep for ACPI PMT discovery (rev7) Patchwork 2026-03-03 6:35 ` ✓ Xe.CI.BAT: " Patchwork 2026-03-03 15:15 ` ✓ Xe.CI.FULL: " Patchwork
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox