#include <linux/auxiliary_bus.h>
#include <linux/bits.h>
#include <linux/cleanup.h>
#include <linux/delay.h>
#include <linux/kernel.h>
#include <linux/idr.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/types.h>
#include "vsec.h"
#define PMT_XA_START …
#define PMT_XA_MAX …
#define PMT_XA_LIMIT …
static DEFINE_IDA(intel_vsec_ida);
static DEFINE_IDA(intel_vsec_sdsi_ida);
static DEFINE_XARRAY_ALLOC(auxdev_array);
static const char *intel_vsec_name(enum intel_vsec_id id)
{ … }
static bool intel_vsec_supported(u16 id, unsigned long caps)
{ … }
static void intel_vsec_remove_aux(void *data)
{ … }
static DEFINE_MUTEX(vsec_ida_lock);
static void intel_vsec_dev_release(struct device *dev)
{ … }
int intel_vsec_add_aux(struct pci_dev *pdev, struct device *parent,
struct intel_vsec_device *intel_vsec_dev,
const char *name)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
static int intel_vsec_add_dev(struct pci_dev *pdev, struct intel_vsec_header *header,
struct intel_vsec_platform_info *info)
{ … }
static bool intel_vsec_walk_header(struct pci_dev *pdev,
struct intel_vsec_platform_info *info)
{ … }
static bool intel_vsec_walk_dvsec(struct pci_dev *pdev,
struct intel_vsec_platform_info *info)
{ … }
static bool intel_vsec_walk_vsec(struct pci_dev *pdev,
struct intel_vsec_platform_info *info)
{ … }
void intel_vsec_register(struct pci_dev *pdev,
struct intel_vsec_platform_info *info)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
static int intel_vsec_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
{ … }
static struct intel_vsec_header dg1_header = …;
static struct intel_vsec_header *dg1_headers[] = …;
static const struct intel_vsec_platform_info dg1_info = …;
static const struct intel_vsec_platform_info mtl_info = …;
static const struct intel_vsec_platform_info oobmsm_info = …;
static const struct intel_vsec_platform_info tgl_info = …;
static const struct intel_vsec_platform_info lnl_info = …;
#define PCI_DEVICE_ID_INTEL_VSEC_ADL …
#define PCI_DEVICE_ID_INTEL_VSEC_DG1 …
#define PCI_DEVICE_ID_INTEL_VSEC_MTL_M …
#define PCI_DEVICE_ID_INTEL_VSEC_MTL_S …
#define PCI_DEVICE_ID_INTEL_VSEC_OOBMSM …
#define PCI_DEVICE_ID_INTEL_VSEC_RPL …
#define PCI_DEVICE_ID_INTEL_VSEC_TGL …
#define PCI_DEVICE_ID_INTEL_VSEC_LNL_M …
static const struct pci_device_id intel_vsec_pci_ids[] = …;
MODULE_DEVICE_TABLE(pci, intel_vsec_pci_ids);
static pci_ers_result_t intel_vsec_pci_error_detected(struct pci_dev *pdev,
pci_channel_state_t state)
{ … }
static pci_ers_result_t intel_vsec_pci_slot_reset(struct pci_dev *pdev)
{ … }
static void intel_vsec_pci_resume(struct pci_dev *pdev)
{ … }
static const struct pci_error_handlers intel_vsec_pci_err_handlers = …;
static struct pci_driver intel_vsec_pci_driver = …;
module_pci_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;