Skip to content

Commit 934954d

Browse files
debox1ij-intel
authored andcommitted
platform/x86/intel/tpmi: Relocate platform info to intel_vsec.h
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>
1 parent 2e7ba52 commit 934954d

7 files changed

Lines changed: 43 additions & 38 deletions

File tree

drivers/platform/x86/intel/plr_tpmi.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
#include <linux/err.h>
1515
#include <linux/gfp_types.h>
1616
#include <linux/intel_tpmi.h>
17+
#include <linux/intel_vsec.h>
1718
#include <linux/io.h>
1819
#include <linux/iopoll.h>
1920
#include <linux/kstrtox.h>
@@ -256,7 +257,7 @@ DEFINE_SHOW_STORE_ATTRIBUTE(plr_status);
256257

257258
static int intel_plr_probe(struct auxiliary_device *auxdev, const struct auxiliary_device_id *id)
258259
{
259-
struct intel_tpmi_plat_info *plat_info;
260+
struct oobmsm_plat_info *plat_info;
260261
struct dentry *dentry;
261262
int i, num_resources;
262263
struct resource *res;

drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#include <linux/auxiliary_bus.h>
2323
#include <linux/delay.h>
2424
#include <linux/intel_tpmi.h>
25+
#include <linux/intel_vsec.h>
2526
#include <linux/fs.h>
2627
#include <linux/io.h>
2728
#include <linux/kernel.h>
@@ -1546,7 +1547,7 @@ int tpmi_sst_dev_add(struct auxiliary_device *auxdev)
15461547
{
15471548
struct tpmi_per_power_domain_info *pd_info;
15481549
bool read_blocked = 0, write_blocked = 0;
1549-
struct intel_tpmi_plat_info *plat_info;
1550+
struct oobmsm_plat_info *plat_info;
15501551
struct device *dev = &auxdev->dev;
15511552
struct tpmi_sst_struct *tpmi_sst;
15521553
u8 i, num_resources, io_die_cnt;
@@ -1698,7 +1699,7 @@ EXPORT_SYMBOL_NS_GPL(tpmi_sst_dev_add, "INTEL_TPMI_SST");
16981699
void tpmi_sst_dev_remove(struct auxiliary_device *auxdev)
16991700
{
17001701
struct tpmi_sst_struct *tpmi_sst = auxiliary_get_drvdata(auxdev);
1701-
struct intel_tpmi_plat_info *plat_info;
1702+
struct oobmsm_plat_info *plat_info;
17021703

17031704
plat_info = tpmi_get_platform_data(auxdev);
17041705
if (!plat_info)
@@ -1720,7 +1721,7 @@ void tpmi_sst_dev_suspend(struct auxiliary_device *auxdev)
17201721
{
17211722
struct tpmi_sst_struct *tpmi_sst = auxiliary_get_drvdata(auxdev);
17221723
struct tpmi_per_power_domain_info *power_domain_info;
1723-
struct intel_tpmi_plat_info *plat_info;
1724+
struct oobmsm_plat_info *plat_info;
17241725
void __iomem *cp_base;
17251726

17261727
plat_info = tpmi_get_platform_data(auxdev);
@@ -1748,7 +1749,7 @@ void tpmi_sst_dev_resume(struct auxiliary_device *auxdev)
17481749
{
17491750
struct tpmi_sst_struct *tpmi_sst = auxiliary_get_drvdata(auxdev);
17501751
struct tpmi_per_power_domain_info *power_domain_info;
1751-
struct intel_tpmi_plat_info *plat_info;
1752+
struct oobmsm_plat_info *plat_info;
17521753
void __iomem *cp_base;
17531754

17541755
plat_info = tpmi_get_platform_data(auxdev);

drivers/platform/x86/intel/uncore-frequency/uncore-frequency-tpmi.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,10 @@
2222
#include <linux/auxiliary_bus.h>
2323
#include <linux/bitfield.h>
2424
#include <linux/bits.h>
25+
#include <linux/intel_tpmi.h>
26+
#include <linux/intel_vsec.h>
2527
#include <linux/io.h>
2628
#include <linux/module.h>
27-
#include <linux/intel_tpmi.h>
2829

2930
#include "../tpmi_power_domains.h"
3031
#include "uncore-frequency-common.h"
@@ -448,7 +449,7 @@ static void remove_cluster_entries(struct tpmi_uncore_struct *tpmi_uncore)
448449
}
449450

450451
static void set_cdie_id(int domain_id, struct tpmi_uncore_cluster_info *cluster_info,
451-
struct intel_tpmi_plat_info *plat_info)
452+
struct oobmsm_plat_info *plat_info)
452453
{
453454

454455
cluster_info->cdie_id = domain_id;
@@ -465,7 +466,7 @@ static void set_cdie_id(int domain_id, struct tpmi_uncore_cluster_info *cluster_
465466
static int uncore_probe(struct auxiliary_device *auxdev, const struct auxiliary_device_id *id)
466467
{
467468
bool read_blocked = 0, write_blocked = 0;
468-
struct intel_tpmi_plat_info *plat_info;
469+
struct oobmsm_plat_info *plat_info;
469470
struct tpmi_uncore_struct *tpmi_uncore;
470471
bool uncore_sysfs_added = false;
471472
int ret, i, pkg = 0;

drivers/platform/x86/intel/vsec_tpmi.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ struct intel_tpmi_info {
116116
struct intel_vsec_device *vsec_dev;
117117
int feature_count;
118118
u64 pfs_start;
119-
struct intel_tpmi_plat_info plat_info;
119+
struct oobmsm_plat_info plat_info;
120120
void __iomem *tpmi_control_mem;
121121
struct dentry *dbgfs_dir;
122122
};
@@ -187,7 +187,7 @@ struct tpmi_feature_state {
187187
/* Used during auxbus device creation */
188188
static DEFINE_IDA(intel_vsec_tpmi_ida);
189189

190-
struct intel_tpmi_plat_info *tpmi_get_platform_data(struct auxiliary_device *auxdev)
190+
struct oobmsm_plat_info *tpmi_get_platform_data(struct auxiliary_device *auxdev)
191191
{
192192
struct intel_vsec_device *vsec_dev = auxdev_to_ivdev(auxdev);
193193

drivers/powercap/intel_rapl_tpmi.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@
99
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
1010

1111
#include <linux/auxiliary_bus.h>
12-
#include <linux/io.h>
13-
#include <linux/intel_tpmi.h>
1412
#include <linux/intel_rapl.h>
13+
#include <linux/intel_tpmi.h>
14+
#include <linux/intel_vsec.h>
15+
#include <linux/io.h>
1516
#include <linux/module.h>
1617
#include <linux/slab.h>
1718

@@ -48,7 +49,7 @@ enum tpmi_rapl_register {
4849

4950
struct tpmi_rapl_package {
5051
struct rapl_if_priv priv;
51-
struct intel_tpmi_plat_info *tpmi_info;
52+
struct oobmsm_plat_info *tpmi_info;
5253
struct rapl_package *rp;
5354
void __iomem *base;
5455
struct list_head node;
@@ -253,7 +254,7 @@ static int intel_rapl_tpmi_probe(struct auxiliary_device *auxdev,
253254
const struct auxiliary_device_id *id)
254255
{
255256
struct tpmi_rapl_package *trp;
256-
struct intel_tpmi_plat_info *info;
257+
struct oobmsm_plat_info *info;
257258
struct resource *res;
258259
u32 offset;
259260
int ret;

include/linux/intel_tpmi.h

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
#include <linux/bitfield.h>
1010

11+
struct oobmsm_plat_info;
12+
1113
#define TPMI_VERSION_INVALID 0xff
1214
#define TPMI_MINOR_VERSION(val) FIELD_GET(GENMASK(4, 0), val)
1315
#define TPMI_MAJOR_VERSION(val) FIELD_GET(GENMASK(7, 5), val)
@@ -26,30 +28,7 @@ enum intel_tpmi_id {
2628
TPMI_INFO_ID = 0x81, /* Special ID for PCI BDF and Package ID information */
2729
};
2830

29-
/**
30-
* struct intel_tpmi_plat_info - Platform information for a TPMI device instance
31-
* @cdie_mask: Mask of all compute dies in the partition
32-
* @package_id: CPU Package id
33-
* @partition: Package partition id when multiple VSEC PCI devices per package
34-
* @segment: PCI segment ID
35-
* @bus_number: PCI bus number
36-
* @device_number: PCI device number
37-
* @function_number: PCI function number
38-
*
39-
* Structure to store platform data for a TPMI device instance. This
40-
* struct is used to return data via tpmi_get_platform_data().
41-
*/
42-
struct intel_tpmi_plat_info {
43-
u16 cdie_mask;
44-
u8 package_id;
45-
u8 partition;
46-
u8 segment;
47-
u8 bus_number;
48-
u8 device_number;
49-
u8 function_number;
50-
};
51-
52-
struct intel_tpmi_plat_info *tpmi_get_platform_data(struct auxiliary_device *auxdev);
31+
struct oobmsm_plat_info *tpmi_get_platform_data(struct auxiliary_device *auxdev);
5332
struct resource *tpmi_get_resource_at_index(struct auxiliary_device *auxdev, int index);
5433
int tpmi_get_resource_count(struct auxiliary_device *auxdev);
5534
int tpmi_get_feature_status(struct auxiliary_device *auxdev, int feature_id, bool *read_blocked,

include/linux/intel_vsec.h

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,28 @@ struct intel_vsec_device {
144144
unsigned long cap_id;
145145
};
146146

147+
/**
148+
* struct oobmsm_plat_info - Platform information for a device instance
149+
* @cdie_mask: Mask of all compute dies in the partition
150+
* @package_id: CPU Package id
151+
* @partition: Package partition id when multiple VSEC PCI devices per package
152+
* @segment: PCI segment ID
153+
* @bus_number: PCI bus number
154+
* @device_number: PCI device number
155+
* @function_number: PCI function number
156+
*
157+
* Structure to store platform data for a OOBMSM device instance.
158+
*/
159+
struct oobmsm_plat_info {
160+
u16 cdie_mask;
161+
u8 package_id;
162+
u8 partition;
163+
u8 segment;
164+
u8 bus_number;
165+
u8 device_number;
166+
u8 function_number;
167+
};
168+
147169
int intel_vsec_add_aux(struct pci_dev *pdev, struct device *parent,
148170
struct intel_vsec_device *intel_vsec_dev,
149171
const char *name);

0 commit comments

Comments
 (0)