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 <[email protected]> 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
