Commit fc9aef43 authored by David E. Box's avatar David E. Box Committed by Hans de Goede

platform/x86/intel/vsec.h: Move to include/linux

Some drivers outside of PDX86 need access to the vsec header. Move it to
include/linux to make it easier to include.
Reviewed-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Reviewed-by: default avatarMichael J. Ruhl <michael.j.ruhl@intel.com>
Signed-off-by: default avatarDavid E. Box <david.e.box@linux.intel.com>
Link: https://lore.kernel.org/r/20240725122346.4063913-2-michael.j.ruhl@intel.comSigned-off-by: default avatarHans de Goede <hdegoede@redhat.com>
parent a6fe07ce
...@@ -11599,7 +11599,8 @@ F: drivers/platform/x86/intel/uncore-frequency/ ...@@ -11599,7 +11599,8 @@ F: drivers/platform/x86/intel/uncore-frequency/
INTEL VENDOR SPECIFIC EXTENDED CAPABILITIES DRIVER INTEL VENDOR SPECIFIC EXTENDED CAPABILITIES DRIVER
M: David E. Box <david.e.box@linux.intel.com> M: David E. Box <david.e.box@linux.intel.com>
S: Supported S: Supported
F: drivers/platform/x86/intel/vsec.* F: drivers/platform/x86/intel/vsec.c
F: include/linux/intel_vsec.h
INTEL VIRTUAL BUTTON DRIVER INTEL VIRTUAL BUTTON DRIVER
M: AceLan Kao <acelan.kao@canonical.com> M: AceLan Kao <acelan.kao@canonical.com>
......
...@@ -9,11 +9,11 @@ ...@@ -9,11 +9,11 @@
*/ */
#include <linux/cleanup.h> #include <linux/cleanup.h>
#include <linux/intel_vsec.h>
#include <linux/pci.h> #include <linux/pci.h>
#include <linux/io-64-nonatomic-lo-hi.h> #include <linux/io-64-nonatomic-lo-hi.h>
#include "core.h" #include "core.h"
#include "../vsec.h"
#include "../pmt/telemetry.h" #include "../pmt/telemetry.h"
#define SSRAM_HDR_SIZE 0x100 #define SSRAM_HDR_SIZE 0x100
......
...@@ -9,12 +9,12 @@ ...@@ -9,12 +9,12 @@
*/ */
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/intel_vsec.h>
#include <linux/io-64-nonatomic-lo-hi.h> #include <linux/io-64-nonatomic-lo-hi.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/mm.h> #include <linux/mm.h>
#include <linux/pci.h> #include <linux/pci.h>
#include "../vsec.h"
#include "class.h" #include "class.h"
#define PMT_XA_START 1 #define PMT_XA_START 1
......
...@@ -2,13 +2,13 @@ ...@@ -2,13 +2,13 @@
#ifndef _INTEL_PMT_CLASS_H #ifndef _INTEL_PMT_CLASS_H
#define _INTEL_PMT_CLASS_H #define _INTEL_PMT_CLASS_H
#include <linux/intel_vsec.h>
#include <linux/xarray.h> #include <linux/xarray.h>
#include <linux/types.h> #include <linux/types.h>
#include <linux/bits.h> #include <linux/bits.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/io.h> #include <linux/io.h>
#include "../vsec.h"
#include "telemetry.h" #include "telemetry.h"
/* PMT access types */ /* PMT access types */
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
*/ */
#include <linux/auxiliary_bus.h> #include <linux/auxiliary_bus.h>
#include <linux/intel_vsec.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/pci.h> #include <linux/pci.h>
...@@ -16,7 +17,6 @@ ...@@ -16,7 +17,6 @@
#include <linux/uaccess.h> #include <linux/uaccess.h>
#include <linux/overflow.h> #include <linux/overflow.h>
#include "../vsec.h"
#include "class.h" #include "class.h"
/* Crashlog discovery header types */ /* Crashlog discovery header types */
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
*/ */
#include <linux/auxiliary_bus.h> #include <linux/auxiliary_bus.h>
#include <linux/intel_vsec.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/pci.h> #include <linux/pci.h>
...@@ -16,7 +17,6 @@ ...@@ -16,7 +17,6 @@
#include <linux/uaccess.h> #include <linux/uaccess.h>
#include <linux/overflow.h> #include <linux/overflow.h>
#include "../vsec.h"
#include "class.h" #include "class.h"
#define TELEM_SIZE_OFFSET 0x0 #define TELEM_SIZE_OFFSET 0x0
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include <linux/bits.h> #include <linux/bits.h>
#include <linux/bitfield.h> #include <linux/bitfield.h>
#include <linux/device.h> #include <linux/device.h>
#include <linux/intel_vsec.h>
#include <linux/iopoll.h> #include <linux/iopoll.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/module.h> #include <linux/module.h>
...@@ -22,8 +23,6 @@ ...@@ -22,8 +23,6 @@
#include <linux/types.h> #include <linux/types.h>
#include <linux/uaccess.h> #include <linux/uaccess.h>
#include "vsec.h"
#define ACCESS_TYPE_BARID 2 #define ACCESS_TYPE_BARID 2
#define ACCESS_TYPE_LOCAL 3 #define ACCESS_TYPE_LOCAL 3
......
...@@ -51,6 +51,7 @@ ...@@ -51,6 +51,7 @@
#include <linux/debugfs.h> #include <linux/debugfs.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/intel_tpmi.h> #include <linux/intel_tpmi.h>
#include <linux/intel_vsec.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/iopoll.h> #include <linux/iopoll.h>
#include <linux/module.h> #include <linux/module.h>
...@@ -59,8 +60,6 @@ ...@@ -59,8 +60,6 @@
#include <linux/sizes.h> #include <linux/sizes.h>
#include <linux/string_helpers.h> #include <linux/string_helpers.h>
#include "vsec.h"
/** /**
* struct intel_tpmi_pfs_entry - TPMI PM Feature Structure (PFS) entry * struct intel_tpmi_pfs_entry - TPMI PM Feature Structure (PFS) entry
* @tpmi_id: TPMI feature identifier (what the feature is and its data format). * @tpmi_id: TPMI feature identifier (what the feature is and its data format).
......
...@@ -17,14 +17,13 @@ ...@@ -17,14 +17,13 @@
#include <linux/bits.h> #include <linux/bits.h>
#include <linux/cleanup.h> #include <linux/cleanup.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/kernel.h>
#include <linux/idr.h> #include <linux/idr.h>
#include <linux/intel_vsec.h>
#include <linux/kernel.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/pci.h> #include <linux/pci.h>
#include <linux/types.h> #include <linux/types.h>
#include "vsec.h"
#define PMT_XA_START 0 #define PMT_XA_START 0
#define PMT_XA_MAX INT_MAX #define PMT_XA_MAX INT_MAX
#define PMT_XA_LIMIT XA_LIMIT(PMT_XA_START, PMT_XA_MAX) #define PMT_XA_LIMIT XA_LIMIT(PMT_XA_START, PMT_XA_MAX)
...@@ -341,7 +340,7 @@ static bool intel_vsec_walk_vsec(struct pci_dev *pdev, ...@@ -341,7 +340,7 @@ static bool intel_vsec_walk_vsec(struct pci_dev *pdev,
void intel_vsec_register(struct pci_dev *pdev, void intel_vsec_register(struct pci_dev *pdev,
struct intel_vsec_platform_info *info) struct intel_vsec_platform_info *info)
{ {
if (!pdev || !info) if (!pdev || !info || !info->headers)
return; return;
intel_vsec_walk_header(pdev, info); intel_vsec_walk_header(pdev, info);
......
/* SPDX-License-Identifier: GPL-2.0 */ /* SPDX-License-Identifier: GPL-2.0 */
#ifndef _VSEC_H #ifndef _INTEL_VSEC_H
#define _VSEC_H #define _INTEL_VSEC_H
#include <linux/auxiliary_bus.h> #include <linux/auxiliary_bus.h>
#include <linux/bits.h> #include <linux/bits.h>
...@@ -67,7 +67,14 @@ enum intel_vsec_quirks { ...@@ -67,7 +67,14 @@ enum intel_vsec_quirks {
VSEC_QUIRK_EARLY_HW = BIT(4), VSEC_QUIRK_EARLY_HW = BIT(4),
}; };
/* Platform specific data */ /**
* struct intel_vsec_platform_info - Platform specific data
* @parent: parent device in the auxbus chain
* @headers: list of headers to define the PMT client devices to create
* @caps: bitmask of PMT capabilities for the given headers
* @quirks: bitmask of VSEC device quirks
* @base_addr: allow a base address to be specified (rather than derived)
*/
struct intel_vsec_platform_info { struct intel_vsec_platform_info {
struct device *parent; struct device *parent;
struct intel_vsec_header **headers; struct intel_vsec_header **headers;
...@@ -76,6 +83,18 @@ struct intel_vsec_platform_info { ...@@ -76,6 +83,18 @@ struct intel_vsec_platform_info {
u64 base_addr; u64 base_addr;
}; };
/**
* struct intel_sec_device - Auxbus specific device information
* @auxdev: auxbus device struct for auxbus access
* @pcidev: pci device associated with the device
* @resource: any resources shared by the parent
* @ida: id reference
* @num_resources: number of resources
* @id: xarray id
* @priv_data: any private data needed
* @quirks: specified quirks
* @base_addr: base address of entries (if specified)
*/
struct intel_vsec_device { struct intel_vsec_device {
struct auxiliary_device auxdev; struct auxiliary_device auxdev;
struct pci_dev *pcidev; struct pci_dev *pcidev;
...@@ -103,6 +122,13 @@ static inline struct intel_vsec_device *auxdev_to_ivdev(struct auxiliary_device ...@@ -103,6 +122,13 @@ static inline struct intel_vsec_device *auxdev_to_ivdev(struct auxiliary_device
return container_of(auxdev, struct intel_vsec_device, auxdev); return container_of(auxdev, struct intel_vsec_device, auxdev);
} }
#if IS_ENABLED(CONFIG_INTEL_VSEC)
void intel_vsec_register(struct pci_dev *pdev, void intel_vsec_register(struct pci_dev *pdev,
struct intel_vsec_platform_info *info); struct intel_vsec_platform_info *info);
#else
static inline void intel_vsec_register(struct pci_dev *pdev,
struct intel_vsec_platform_info *info)
{
}
#endif
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment