From: "Michael J. Ruhl" <michael.j.ruhl@intel.com>
To: intel-xe@lists.freedesktop.org, lucas.demarchi@intel.com,
michael.j.ruhl@intel.com
Subject: [PATCH v13 2/4] platform/x86/intel/vsec: Add PMT read callbacks
Date: Thu, 12 Sep 2024 14:42:07 -0400 [thread overview]
Message-ID: <20240912184210.914612-3-michael.j.ruhl@intel.com> (raw)
In-Reply-To: <20240912184210.914612-1-michael.j.ruhl@intel.com>
From: "David E. Box" <david.e.box@linux.intel.com>
Some PMT providers require device specific actions before their telemetry
can be read. Provide assignable PMT read callbacks to allow providers to
perform those actions.
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>
---
drivers/platform/x86/intel/vsec.c | 1 +
include/linux/intel_vsec.h | 15 +++++++++++++++
2 files changed, 16 insertions(+)
diff --git a/drivers/platform/x86/intel/vsec.c b/drivers/platform/x86/intel/vsec.c
index 2b46807f868b..7b5cc9993974 100644
--- a/drivers/platform/x86/intel/vsec.c
+++ b/drivers/platform/x86/intel/vsec.c
@@ -212,6 +212,7 @@ static int intel_vsec_add_dev(struct pci_dev *pdev, struct intel_vsec_header *he
intel_vsec_dev->num_resources = header->num_entries;
intel_vsec_dev->quirks = info->quirks;
intel_vsec_dev->base_addr = info->base_addr;
+ intel_vsec_dev->priv_data = info->priv_data;
if (header->id == VSEC_ID_SDSI)
intel_vsec_dev->ida = &intel_vsec_sdsi_ida;
diff --git a/include/linux/intel_vsec.h b/include/linux/intel_vsec.h
index 6495e37c9079..11ee185566c3 100644
--- a/include/linux/intel_vsec.h
+++ b/include/linux/intel_vsec.h
@@ -67,10 +67,24 @@ enum intel_vsec_quirks {
VSEC_QUIRK_EARLY_HW = BIT(4),
};
+/**
+ * struct pmt_callbacks - Callback infrastructure for PMT devices
+ * ->read_telem() when specified, called by client driver to access PMT data (instead
+ * of direct copy).
+ * @pdev: PCI device reference for the callback's use
+ * @guid: ID of data to acccss
+ * @data: buffer for the data to be copied
+ * @count: size of buffer
+ */
+struct pmt_callbacks {
+ int (*read_telem)(struct pci_dev *pdev, u32 guid, u64 *data, u32 count);
+};
+
/**
* 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
+ * @priv_data: private data, usable by parent devices, currently a callback
* @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)
@@ -78,6 +92,7 @@ enum intel_vsec_quirks {
struct intel_vsec_platform_info {
struct device *parent;
struct intel_vsec_header **headers;
+ void *priv_data;
unsigned long caps;
unsigned long quirks;
u64 base_addr;
--
2.44.0
next prev parent reply other threads:[~2024-09-12 18:42 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-12 18:42 [PATCH v13 0/4] Support PMT features in Xe Michael J. Ruhl
2024-09-12 18:42 ` [PATCH v13 1/4] platform/x86/intel/vsec.h: Move to include/linux Michael J. Ruhl
2024-09-12 18:42 ` Michael J. Ruhl [this message]
2024-09-12 18:42 ` [PATCH v13 3/4] platform/x86/intel/pmt: Use PMT callbacks Michael J. Ruhl
2024-09-12 18:42 ` [PATCH v13 4/4] drm/xe/vsec: Support BMG devices Michael J. Ruhl
2024-09-14 0:01 ` Lucas De Marchi
2024-09-16 15:20 ` Rodrigo Vivi
2024-09-16 15:30 ` Ruhl, Michael J
2024-09-12 18:47 ` ✓ CI.Patch_applied: success for Support PMT features in Xe (rev12) Patchwork
2024-09-12 18:48 ` ✗ CI.checkpatch: warning " Patchwork
2024-09-12 18:49 ` ✓ CI.KUnit: success " Patchwork
2024-09-12 19:00 ` ✓ CI.Build: " Patchwork
2024-09-12 19:03 ` ✓ CI.Hooks: " Patchwork
2024-09-12 19:04 ` ✓ CI.checksparse: " Patchwork
2024-09-12 19:19 ` ✓ CI.BAT: " Patchwork
2024-09-13 11:22 ` ✗ CI.FULL: failure " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240912184210.914612-3-michael.j.ruhl@intel.com \
--to=michael.j.ruhl@intel.com \
--cc=intel-xe@lists.freedesktop.org \
--cc=lucas.demarchi@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.