]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
platform/x86/intel/tpmi: Relocate platform info to intel_vsec.h
authorDavid E. Box <david.e.box@linux.intel.com>
Thu, 3 Jul 2025 02:28:25 +0000 (19:28 -0700)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Thu, 3 Jul 2025 08:09:35 +0000 (11:09 +0300)
The TPMI platform information provides a mapping of OOBMSM PCI devices to
logical CPUs. Since this mapping is consistent across all OOBMSM features
(e.g., TPMI, PMT, SDSi), it can be leveraged by multiple drivers. To
facilitate reuse, relocate the struct intel_tpmi_plat_info to intel_vsec.h,
renaming it to struct oobmsm_plat_info, making it accessible to other
features. While modifying headers, place them in alphabetical order.

Signed-off-by: David E. Box <david.e.box@linux.intel.com>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Link: https://lore.kernel.org/r/20250703022832.1302928-11-david.e.box@linux.intel.com
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
drivers/platform/x86/intel/plr_tpmi.c
drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
drivers/platform/x86/intel/uncore-frequency/uncore-frequency-tpmi.c
drivers/platform/x86/intel/vsec_tpmi.c
drivers/powercap/intel_rapl_tpmi.c
include/linux/intel_tpmi.h
include/linux/intel_vsec.h

index 2b55347a5a93b509510a4676613513e574f079ca..58132da4774570030df04bee14a877f94407da1d 100644 (file)
@@ -14,6 +14,7 @@
 #include <linux/err.h>
 #include <linux/gfp_types.h>
 #include <linux/intel_tpmi.h>
+#include <linux/intel_vsec.h>
 #include <linux/io.h>
 #include <linux/iopoll.h>
 #include <linux/kstrtox.h>
@@ -256,7 +257,7 @@ DEFINE_SHOW_STORE_ATTRIBUTE(plr_status);
 
 static int intel_plr_probe(struct auxiliary_device *auxdev, const struct auxiliary_device_id *id)
 {
-       struct intel_tpmi_plat_info *plat_info;
+       struct oobmsm_plat_info *plat_info;
        struct dentry *dentry;
        int i, num_resources;
        struct resource *res;
index 18c035710eb94b8368886ea7309c8c80abf6eac5..34bff2f65a835b35e2ed7b9db2face85b242dd8b 100644 (file)
@@ -22,6 +22,7 @@
 #include <linux/auxiliary_bus.h>
 #include <linux/delay.h>
 #include <linux/intel_tpmi.h>
+#include <linux/intel_vsec.h>
 #include <linux/fs.h>
 #include <linux/io.h>
 #include <linux/kernel.h>
@@ -1546,7 +1547,7 @@ int tpmi_sst_dev_add(struct auxiliary_device *auxdev)
 {
        struct tpmi_per_power_domain_info *pd_info;
        bool read_blocked = 0, write_blocked = 0;
-       struct intel_tpmi_plat_info *plat_info;
+       struct oobmsm_plat_info *plat_info;
        struct device *dev = &auxdev->dev;
        struct tpmi_sst_struct *tpmi_sst;
        u8 i, num_resources, io_die_cnt;
@@ -1698,7 +1699,7 @@ EXPORT_SYMBOL_NS_GPL(tpmi_sst_dev_add, "INTEL_TPMI_SST");
 void tpmi_sst_dev_remove(struct auxiliary_device *auxdev)
 {
        struct tpmi_sst_struct *tpmi_sst = auxiliary_get_drvdata(auxdev);
-       struct intel_tpmi_plat_info *plat_info;
+       struct oobmsm_plat_info *plat_info;
 
        plat_info = tpmi_get_platform_data(auxdev);
        if (!plat_info)
@@ -1720,7 +1721,7 @@ void tpmi_sst_dev_suspend(struct auxiliary_device *auxdev)
 {
        struct tpmi_sst_struct *tpmi_sst = auxiliary_get_drvdata(auxdev);
        struct tpmi_per_power_domain_info *power_domain_info;
-       struct intel_tpmi_plat_info *plat_info;
+       struct oobmsm_plat_info *plat_info;
        void __iomem *cp_base;
 
        plat_info = tpmi_get_platform_data(auxdev);
@@ -1748,7 +1749,7 @@ void tpmi_sst_dev_resume(struct auxiliary_device *auxdev)
 {
        struct tpmi_sst_struct *tpmi_sst = auxiliary_get_drvdata(auxdev);
        struct tpmi_per_power_domain_info *power_domain_info;
-       struct intel_tpmi_plat_info *plat_info;
+       struct oobmsm_plat_info *plat_info;
        void __iomem *cp_base;
 
        plat_info = tpmi_get_platform_data(auxdev);
index 44d9948ed2241b09132917677799de4f563d62aa..6df55c8e16b793a4780b506ad3aa0960686ebf65 100644 (file)
 #include <linux/auxiliary_bus.h>
 #include <linux/bitfield.h>
 #include <linux/bits.h>
+#include <linux/intel_tpmi.h>
+#include <linux/intel_vsec.h>
 #include <linux/io.h>
 #include <linux/module.h>
-#include <linux/intel_tpmi.h>
 
 #include "../tpmi_power_domains.h"
 #include "uncore-frequency-common.h"
@@ -448,7 +449,7 @@ static void remove_cluster_entries(struct tpmi_uncore_struct *tpmi_uncore)
 }
 
 static void set_cdie_id(int domain_id, struct tpmi_uncore_cluster_info *cluster_info,
-                      struct intel_tpmi_plat_info *plat_info)
+                       struct oobmsm_plat_info *plat_info)
 {
 
        cluster_info->cdie_id = domain_id;
@@ -465,7 +466,7 @@ static void set_cdie_id(int domain_id, struct tpmi_uncore_cluster_info *cluster_
 static int uncore_probe(struct auxiliary_device *auxdev, const struct auxiliary_device_id *id)
 {
        bool read_blocked = 0, write_blocked = 0;
-       struct intel_tpmi_plat_info *plat_info;
+       struct oobmsm_plat_info *plat_info;
        struct tpmi_uncore_struct *tpmi_uncore;
        bool uncore_sysfs_added = false;
        int ret, i, pkg = 0;
index 5c383a27bbe8d16af4f49b738357e19cb7cfdd78..d95a0d994546ff3b09742edf81c9f32b42b6184c 100644 (file)
@@ -116,7 +116,7 @@ struct intel_tpmi_info {
        struct intel_vsec_device *vsec_dev;
        int feature_count;
        u64 pfs_start;
-       struct intel_tpmi_plat_info plat_info;
+       struct oobmsm_plat_info plat_info;
        void __iomem *tpmi_control_mem;
        struct dentry *dbgfs_dir;
 };
@@ -187,7 +187,7 @@ struct tpmi_feature_state {
 /* Used during auxbus device creation */
 static DEFINE_IDA(intel_vsec_tpmi_ida);
 
-struct intel_tpmi_plat_info *tpmi_get_platform_data(struct auxiliary_device *auxdev)
+struct oobmsm_plat_info *tpmi_get_platform_data(struct auxiliary_device *auxdev)
 {
        struct intel_vsec_device *vsec_dev = auxdev_to_ivdev(auxdev);
 
index af2368f4db10a5f5b7cd2aabf6db73fad079f6b4..82201bf4685d448d49fb1f09283f7fc64c662cd6 100644 (file)
@@ -9,9 +9,10 @@
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
 #include <linux/auxiliary_bus.h>
-#include <linux/io.h>
-#include <linux/intel_tpmi.h>
 #include <linux/intel_rapl.h>
+#include <linux/intel_tpmi.h>
+#include <linux/intel_vsec.h>
+#include <linux/io.h>
 #include <linux/module.h>
 #include <linux/slab.h>
 
@@ -48,7 +49,7 @@ enum tpmi_rapl_register {
 
 struct tpmi_rapl_package {
        struct rapl_if_priv priv;
-       struct intel_tpmi_plat_info *tpmi_info;
+       struct oobmsm_plat_info *tpmi_info;
        struct rapl_package *rp;
        void __iomem *base;
        struct list_head node;
@@ -253,7 +254,7 @@ static int intel_rapl_tpmi_probe(struct auxiliary_device *auxdev,
                                 const struct auxiliary_device_id *id)
 {
        struct tpmi_rapl_package *trp;
-       struct intel_tpmi_plat_info *info;
+       struct oobmsm_plat_info *info;
        struct resource *res;
        u32 offset;
        int ret;
index ff480b47ae642010102cb8c31e3953bb4af41d9d..94c06bf214fb6f833aba6ba8b022614301d2c54c 100644 (file)
@@ -8,6 +8,8 @@
 
 #include <linux/bitfield.h>
 
+struct oobmsm_plat_info;
+
 #define TPMI_VERSION_INVALID   0xff
 #define TPMI_MINOR_VERSION(val)        FIELD_GET(GENMASK(4, 0), val)
 #define TPMI_MAJOR_VERSION(val)        FIELD_GET(GENMASK(7, 5), val)
@@ -26,30 +28,7 @@ enum intel_tpmi_id {
        TPMI_INFO_ID = 0x81,    /* Special ID for PCI BDF and Package ID information */
 };
 
-/**
- * struct intel_tpmi_plat_info - Platform information for a TPMI device instance
- * @cdie_mask:       Mask of all compute dies in the partition
- * @package_id:      CPU Package id
- * @partition:       Package partition id when multiple VSEC PCI devices per package
- * @segment:         PCI segment ID
- * @bus_number:      PCI bus number
- * @device_number:   PCI device number
- * @function_number: PCI function number
- *
- * Structure to store platform data for a TPMI device instance. This
- * struct is used to return data via tpmi_get_platform_data().
- */
-struct intel_tpmi_plat_info {
-       u16 cdie_mask;
-       u8 package_id;
-       u8 partition;
-       u8 segment;
-       u8 bus_number;
-       u8 device_number;
-       u8 function_number;
-};
-
-struct intel_tpmi_plat_info *tpmi_get_platform_data(struct auxiliary_device *auxdev);
+struct oobmsm_plat_info *tpmi_get_platform_data(struct auxiliary_device *auxdev);
 struct resource *tpmi_get_resource_at_index(struct auxiliary_device *auxdev, int index);
 int tpmi_get_resource_count(struct auxiliary_device *auxdev);
 int tpmi_get_feature_status(struct auxiliary_device *auxdev, int feature_id, bool *read_blocked,
index a07796d7d43be95a54e663ee5ac2e18bd313eca0..cd78d0b2e623c27818148c1310d979c01c87ee50 100644 (file)
@@ -144,6 +144,28 @@ struct intel_vsec_device {
        unsigned long cap_id;
 };
 
+/**
+ * struct oobmsm_plat_info - Platform information for a device instance
+ * @cdie_mask:       Mask of all compute dies in the partition
+ * @package_id:      CPU Package id
+ * @partition:       Package partition id when multiple VSEC PCI devices per package
+ * @segment:         PCI segment ID
+ * @bus_number:      PCI bus number
+ * @device_number:   PCI device number
+ * @function_number: PCI function number
+ *
+ * Structure to store platform data for a OOBMSM device instance.
+ */
+struct oobmsm_plat_info {
+       u16 cdie_mask;
+       u8 package_id;
+       u8 partition;
+       u8 segment;
+       u8 bus_number;
+       u8 device_number;
+       u8 function_number;
+};
+
 int intel_vsec_add_aux(struct pci_dev *pdev, struct device *parent,
                       struct intel_vsec_device *intel_vsec_dev,
                       const char *name);