From: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
To: hdegoede@redhat.com, markgross@kernel.org
Cc: platform-driver-x86@vger.kernel.org,
linux-kernel@vger.kernel.org,
Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Subject: [PATCH 04/12] platform/x86: ISST: Add API version of the target
Date: Fri, 10 Feb 2023 22:32:49 -0800 [thread overview]
Message-ID: <20230211063257.311746-5-srinivas.pandruvada@linux.intel.com> (raw)
In-Reply-To: <20230211063257.311746-1-srinivas.pandruvada@linux.intel.com>
User space can get the API version using IOCTL
ISST_IF_GET_PLATFORM_INFO. This information can be used to get IOCTLs
supported by the kernel driver. This version is hardcoded in the driver.
Allow the registered client to specify the supported API version. In
this way a registered client can specify a higher API version to extend
IOCTL set.
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
---
.../platform/x86/intel/speed_select_if/isst_if_common.c | 8 +++++++-
.../platform/x86/intel/speed_select_if/isst_if_common.h | 3 ++-
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/drivers/platform/x86/intel/speed_select_if/isst_if_common.c b/drivers/platform/x86/intel/speed_select_if/isst_if_common.c
index 9fef955bdedc..60e58b0b3835 100644
--- a/drivers/platform/x86/intel/speed_select_if/isst_if_common.c
+++ b/drivers/platform/x86/intel/speed_select_if/isst_if_common.c
@@ -262,11 +262,13 @@ bool isst_if_mbox_cmd_set_req(struct isst_if_mbox_cmd *cmd)
}
EXPORT_SYMBOL_GPL(isst_if_mbox_cmd_set_req);
+static int isst_if_api_version;
+
static int isst_if_get_platform_info(void __user *argp)
{
struct isst_if_platform_info info;
- info.api_version = ISST_IF_API_VERSION;
+ info.api_version = isst_if_api_version;
info.driver_version = ISST_IF_DRIVER_VERSION;
info.max_cmds_per_ioctl = ISST_IF_CMD_LIMIT;
info.mbox_supported = punit_callbacks[ISST_IF_DEV_MBOX].registered;
@@ -767,6 +769,10 @@ int isst_if_cdev_register(int device_type, struct isst_if_cmd_cb *cb)
mutex_unlock(&punit_misc_dev_open_lock);
return -EAGAIN;
}
+ if (!cb->api_version)
+ cb->api_version = ISST_IF_API_VERSION;
+ if (cb->api_version > isst_if_api_version)
+ isst_if_api_version = cb->api_version;
memcpy(&punit_callbacks[device_type], cb, sizeof(*cb));
punit_callbacks[device_type].registered = 1;
mutex_unlock(&punit_misc_dev_open_lock);
diff --git a/drivers/platform/x86/intel/speed_select_if/isst_if_common.h b/drivers/platform/x86/intel/speed_select_if/isst_if_common.h
index 34a172e5c82c..1004f2c9cca8 100644
--- a/drivers/platform/x86/intel/speed_select_if/isst_if_common.h
+++ b/drivers/platform/x86/intel/speed_select_if/isst_if_common.h
@@ -41,6 +41,7 @@
* @offset: Offset to the first valid member in command structure.
* This will be the offset of the start of the command
* after command count field
+ * @api_version: API version supported for this target. 0, if none.
* @owner: Registered module owner
* @cmd_callback: Callback function to handle IOCTL. The callback has the
* command pointer with data for command. There is a pointer
@@ -60,7 +61,7 @@ struct isst_if_cmd_cb {
int registered;
int cmd_size;
int offset;
-
+ int api_version;
struct module *owner;
long (*cmd_callback)(u8 *ptr, int *write_only, int resume);
long (*def_ioctl)(struct file *file, unsigned int cmd, unsigned long arg);
--
2.39.1
next prev parent reply other threads:[~2023-02-11 6:33 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-11 6:32 [PATCH 00/12] platform/x86: ISST: Use TPMI interface Srinivas Pandruvada
2023-02-11 6:32 ` [PATCH 01/12] platform/x86: ISST: Fix kernel documentation warnings Srinivas Pandruvada
2023-03-01 14:23 ` Hans de Goede
2023-03-01 14:48 ` srinivas pandruvada
2023-03-01 14:48 ` Hans de Goede
2023-02-11 6:32 ` [PATCH 02/12] platform/x86: ISST: Add TPMI target Srinivas Pandruvada
2023-03-01 14:25 ` Hans de Goede
2023-02-11 6:32 ` [PATCH 03/12] platform/x86: ISST: Add IOCTL default callback Srinivas Pandruvada
2023-02-11 6:32 ` Srinivas Pandruvada [this message]
2023-02-11 6:32 ` [PATCH 05/12] platform/x86: ISST: Add support for MSR 0x54 Srinivas Pandruvada
2023-03-01 14:30 ` Hans de Goede
2023-03-01 14:41 ` srinivas pandruvada
2023-03-01 14:46 ` Hans de Goede
2023-02-11 6:32 ` [PATCH 06/12] platform/x86: ISST: Enumerate TPMI SST and create framework Srinivas Pandruvada
2023-03-01 14:37 ` Hans de Goede
2023-03-01 14:45 ` srinivas pandruvada
2023-03-01 14:47 ` Hans de Goede
2023-02-11 6:32 ` [PATCH 07/12] platform/x86: ISST: Parse SST MMIO and update instance Srinivas Pandruvada
2023-02-11 6:32 ` [PATCH 08/12] platform/x86: ISST: Add SST-CP support via TPMI Srinivas Pandruvada
2023-02-11 6:32 ` [PATCH 09/12] platform/x86: ISST: Add SST-PP " Srinivas Pandruvada
2023-02-11 6:32 ` [PATCH 10/12] platform/x86: ISST: Add SST-BF " Srinivas Pandruvada
2023-02-11 6:32 ` [PATCH 11/12] platform/x86: ISST: Add SST-TF " Srinivas Pandruvada
2023-02-11 6:32 ` [PATCH 12/12] platform/x86: ISST: Add suspend/resume callbacks Srinivas Pandruvada
2023-03-01 14:40 ` Hans de Goede
2023-03-01 14:46 ` srinivas pandruvada
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=20230211063257.311746-5-srinivas.pandruvada@linux.intel.com \
--to=srinivas.pandruvada@linux.intel.com \
--cc=hdegoede@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=markgross@kernel.org \
--cc=platform-driver-x86@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®