]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
platform/x86/intel/vsec.h: Move to include/linux
authorDavid E. Box <david.e.box@linux.intel.com>
Thu, 25 Jul 2024 12:23:40 +0000 (08:23 -0400)
committerHans de Goede <hdegoede@redhat.com>
Mon, 12 Aug 2024 14:21:31 +0000 (16:21 +0200)
Some drivers outside of PDX86 need access to the vsec header. Move it to
include/linux to make it easier to include.

Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
Signed-off-by: David E. Box <david.e.box@linux.intel.com>
Link: https://lore.kernel.org/r/20240725122346.4063913-2-michael.j.ruhl@intel.com
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
MAINTAINERS
drivers/platform/x86/intel/pmc/core_ssram.c
drivers/platform/x86/intel/pmt/class.c
drivers/platform/x86/intel/pmt/class.h
drivers/platform/x86/intel/pmt/crashlog.c
drivers/platform/x86/intel/pmt/telemetry.c
drivers/platform/x86/intel/sdsi.c
drivers/platform/x86/intel/tpmi.c
drivers/platform/x86/intel/vsec.c
include/linux/intel_vsec.h [moved from drivers/platform/x86/intel/vsec.h with 71% similarity]

index 42decde3832066e43a460a83b0634e4d9af0c797..894608f6555cc01d9527d74db8b21cfc1f145e43 100644 (file)
@@ -11599,7 +11599,8 @@ F:      drivers/platform/x86/intel/uncore-frequency/
 INTEL VENDOR SPECIFIC EXTENDED CAPABILITIES DRIVER
 M:     David E. Box <david.e.box@linux.intel.com>
 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
 M:     AceLan Kao <acelan.kao@canonical.com>
index 1bde86c54eb9791780d4748efed74cc9cbbeb122..baddaaec25eed52761eb11b377309ff7e656bed7 100644 (file)
@@ -9,11 +9,11 @@
  */
 
 #include <linux/cleanup.h>
+#include <linux/intel_vsec.h>
 #include <linux/pci.h>
 #include <linux/io-64-nonatomic-lo-hi.h>
 
 #include "core.h"
-#include "../vsec.h"
 #include "../pmt/telemetry.h"
 
 #define SSRAM_HDR_SIZE         0x100
index 4b53940a64e288f379357eb784a3c49601f48d7f..d7939b28e937d2cc6089d77410fbb27ca4978e15 100644 (file)
@@ -9,12 +9,12 @@
  */
 
 #include <linux/kernel.h>
+#include <linux/intel_vsec.h>
 #include <linux/io-64-nonatomic-lo-hi.h>
 #include <linux/module.h>
 #include <linux/mm.h>
 #include <linux/pci.h>
 
-#include "../vsec.h"
 #include "class.h"
 
 #define PMT_XA_START           1
index d23c63b73ab7d0f81c5718ce10bfecba766fc0ba..d6f9ccaf28c849913cbf88fc70efc6a8243b0eea 100644 (file)
@@ -2,13 +2,13 @@
 #ifndef _INTEL_PMT_CLASS_H
 #define _INTEL_PMT_CLASS_H
 
+#include <linux/intel_vsec.h>
 #include <linux/xarray.h>
 #include <linux/types.h>
 #include <linux/bits.h>
 #include <linux/err.h>
 #include <linux/io.h>
 
-#include "../vsec.h"
 #include "telemetry.h"
 
 /* PMT access types */
index 4014c02cafdb53c1b8dd5bf0c7ae51693889bfce..9079d5dffc031a6c225ae7ecb94380d00000e3f2 100644 (file)
@@ -9,6 +9,7 @@
  */
 
 #include <linux/auxiliary_bus.h>
+#include <linux/intel_vsec.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/pci.h>
@@ -16,7 +17,6 @@
 #include <linux/uaccess.h>
 #include <linux/overflow.h>
 
-#include "../vsec.h"
 #include "class.h"
 
 /* Crashlog discovery header types */
index 09258564dfc4df197eefe156599124b5df53409f..3478f891ea0b9ec92e928c140884374ca6111bb3 100644 (file)
@@ -9,6 +9,7 @@
  */
 
 #include <linux/auxiliary_bus.h>
+#include <linux/intel_vsec.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/pci.h>
@@ -16,7 +17,6 @@
 #include <linux/uaccess.h>
 #include <linux/overflow.h>
 
-#include "../vsec.h"
 #include "class.h"
 
 #define TELEM_SIZE_OFFSET      0x0
index 277e4f4b20acfbb8ac2f454fc28895cacd430ede..9d137621f0e6e7a23be0e0bbc6175c51c403169f 100644 (file)
@@ -12,6 +12,7 @@
 #include <linux/bits.h>
 #include <linux/bitfield.h>
 #include <linux/device.h>
+#include <linux/intel_vsec.h>
 #include <linux/iopoll.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
@@ -22,8 +23,6 @@
 #include <linux/types.h>
 #include <linux/uaccess.h>
 
-#include "vsec.h"
-
 #define ACCESS_TYPE_BARID              2
 #define ACCESS_TYPE_LOCAL              3
 
index 83e8b1fe53b355b2b562d118177cf95eafeffe0d..486ddc9b35924845328234bf8809030020c2bb63 100644 (file)
@@ -51,6 +51,7 @@
 #include <linux/debugfs.h>
 #include <linux/delay.h>
 #include <linux/intel_tpmi.h>
+#include <linux/intel_vsec.h>
 #include <linux/io.h>
 #include <linux/iopoll.h>
 #include <linux/module.h>
@@ -59,8 +60,6 @@
 #include <linux/sizes.h>
 #include <linux/string_helpers.h>
 
-#include "vsec.h"
-
 /**
  * struct intel_tpmi_pfs_entry - TPMI PM Feature Structure (PFS) entry
  * @tpmi_id:   TPMI feature identifier (what the feature is and its data format).
index 0fdfaf3a4f5cde4a2945a3a8860b1eb220c4f265..2b46807f868b80026081680bf06d68dbc139242a 100644 (file)
 #include <linux/bits.h>
 #include <linux/cleanup.h>
 #include <linux/delay.h>
-#include <linux/kernel.h>
 #include <linux/idr.h>
+#include <linux/intel_vsec.h>
+#include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/pci.h>
 #include <linux/types.h>
 
-#include "vsec.h"
-
 #define PMT_XA_START                   0
 #define PMT_XA_MAX                     INT_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,
 void intel_vsec_register(struct pci_dev *pdev,
                         struct intel_vsec_platform_info *info)
 {
-       if (!pdev || !info)
+       if (!pdev || !info || !info->headers)
                return;
 
        intel_vsec_walk_header(pdev, info);
similarity index 71%
rename from drivers/platform/x86/intel/vsec.h
rename to include/linux/intel_vsec.h
index e23e76129691a58bd81de468983f2e9e9d4da025..6495e37c90794d9e79023a870a30861ed81f8afd 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _VSEC_H
-#define _VSEC_H
+#ifndef _INTEL_VSEC_H
+#define _INTEL_VSEC_H
 
 #include <linux/auxiliary_bus.h>
 #include <linux/bits.h>
@@ -67,7 +67,14 @@ enum intel_vsec_quirks {
        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 device *parent;
        struct intel_vsec_header **headers;
@@ -76,6 +83,18 @@ struct intel_vsec_platform_info {
        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 auxiliary_device auxdev;
        struct pci_dev *pcidev;
@@ -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);
 }
 
+#if IS_ENABLED(CONFIG_INTEL_VSEC)
 void intel_vsec_register(struct pci_dev *pdev,
                         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