From: Mika Westerberg <mika.westerberg@linux.intel.com>
To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Darren Hart <dvhart@infradead.org>,
Lee Jones <lee.jones@linaro.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
"H . Peter Anvin" <hpa@zytor.com>,
x86@kernel.org, Zha Qipeng <qipeng.zha@intel.com>,
Rajneesh Bhardwaj <rajneesh.bhardwaj@linux.intel.com>,
"David E . Box" <david.e.box@linux.intel.com>,
Guenter Roeck <linux@roeck-us.net>,
Heikki Krogerus <heikki.krogerus@linux.intel.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Wim Van Sebroeck <wim@linux-watchdog.org>,
Mika Westerberg <mika.westerberg@linux.intel.com>,
platform-driver-x86@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: [PATCH v2 17/36] platform/x86: intel_scu_ipcutil: Convert to use new SCU IPC API
Date: Wed, 8 Jan 2020 14:41:42 +0300 [thread overview]
Message-ID: <20200108114201.27908-18-mika.westerberg@linux.intel.com> (raw)
In-Reply-To: <20200108114201.27908-1-mika.westerberg@linux.intel.com>
Convert the IPC util to use the new SCU IPC API where the SCU IPC
instance is passed to the functions.
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
---
drivers/platform/x86/intel_scu_ipcutil.c | 43 +++++++++++++++++++++---
1 file changed, 39 insertions(+), 4 deletions(-)
diff --git a/drivers/platform/x86/intel_scu_ipcutil.c b/drivers/platform/x86/intel_scu_ipcutil.c
index 8afe6fa06d7b..b7c10c15a3d6 100644
--- a/drivers/platform/x86/intel_scu_ipcutil.c
+++ b/drivers/platform/x86/intel_scu_ipcutil.c
@@ -22,6 +22,9 @@
static int major;
+struct intel_scu_ipc_dev *scu;
+static DEFINE_MUTEX(scu_lock);
+
/* IOCTL commands */
#define INTE_SCU_IPC_REGISTER_READ 0
#define INTE_SCU_IPC_REGISTER_WRITE 1
@@ -52,12 +55,12 @@ static int scu_reg_access(u32 cmd, struct scu_ipc_data *data)
switch (cmd) {
case INTE_SCU_IPC_REGISTER_READ:
- return intel_scu_ipc_readv(data->addr, data->data, count);
+ return intel_scu_ipc_dev_readv(scu, data->addr, data->data, count);
case INTE_SCU_IPC_REGISTER_WRITE:
- return intel_scu_ipc_writev(data->addr, data->data, count);
+ return intel_scu_ipc_dev_writev(scu, data->addr, data->data, count);
case INTE_SCU_IPC_REGISTER_UPDATE:
- return intel_scu_ipc_update_register(data->addr[0],
- data->data[0], data->mask);
+ return intel_scu_ipc_dev_update(scu, data->addr[0], data->data[0],
+ data->mask);
default:
return -ENOTTY;
}
@@ -91,8 +94,40 @@ static long scu_ipc_ioctl(struct file *fp, unsigned int cmd,
return 0;
}
+static int scu_ipc_open(struct inode *inode, struct file *file)
+{
+ int ret = 0;
+
+ /* Only single open at the time */
+ mutex_lock(&scu_lock);
+ if (scu) {
+ ret = -EBUSY;
+ goto unlock;
+ }
+
+ scu = intel_scu_ipc_dev_get();
+ if (!scu)
+ ret = -ENODEV;
+
+unlock:
+ mutex_unlock(&scu_lock);
+ return ret;
+}
+
+static int scu_ipc_release(struct inode *inode, struct file *file)
+{
+ mutex_lock(&scu_lock);
+ intel_scu_ipc_dev_put(scu);
+ scu = NULL;
+ mutex_unlock(&scu_lock);
+
+ return 0;
+}
+
static const struct file_operations scu_ipc_fops = {
.unlocked_ioctl = scu_ipc_ioctl,
+ .open = scu_ipc_open,
+ .release = scu_ipc_release,
};
static int __init ipc_module_init(void)
--
2.24.1
next prev parent reply other threads:[~2020-01-08 11:41 UTC|newest]
Thread overview: 81+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-08 11:41 [PATCH v2 00/36] platform/x86: Rework intel_scu_ipc and intel_pmc_ipc drivers Mika Westerberg
2020-01-08 11:41 ` [PATCH v2 01/36] platform/x86: intel_mid_powerbtn: Take a copy of ddata Mika Westerberg
2020-01-08 16:37 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 02/36] platform/x86: intel_scu_ipcutil: Remove default y from Kconfig Mika Westerberg
2020-01-08 16:38 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 03/36] platform/x86: intel_scu_ipc: Add constants for register offsets Mika Westerberg
2020-01-08 16:39 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 04/36] platform/x86: intel_scu_ipc: Remove Lincroft support Mika Westerberg
2020-01-08 16:39 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 05/36] platform/x86: intel_scu_ipc: Drop intel_scu_ipc_i2c_cntrl() Mika Westerberg
2020-01-08 16:39 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 06/36] platform/x86: intel_scu_ipc: Fix interrupt support Mika Westerberg
2020-01-08 16:40 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 07/36] platform/x86: intel_scu_ipc: Sleeping is fine when polling Mika Westerberg
2020-01-08 17:12 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 08/36] platform/x86: intel_scu_ipc: Drop unused prototype intel_scu_ipc_fw_update() Mika Westerberg
2020-01-08 16:41 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 09/36] platform/x86: intel_scu_ipc: Drop unused macros Mika Westerberg
2020-01-08 16:41 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 10/36] platform/x86: intel_scu_ipc: Drop intel_scu_ipc_io[read|write][8|16]() Mika Westerberg
2020-01-08 16:41 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 11/36] platform/x86: intel_scu_ipc: Drop intel_scu_ipc_raw_command() Mika Westerberg
2020-01-08 16:42 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 12/36] platform/x86: intel_scu_ipc: Split out SCU IPC functionality from the SCU driver Mika Westerberg
2020-01-08 17:22 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 13/36] platform/x86: intel_scu_ipc: Reformat kernel-doc comments of exported functions Mika Westerberg
2020-01-08 16:42 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 14/36] platform/x86: intel_scu_ipc: Introduce new SCU IPC API Mika Westerberg
2020-01-09 11:30 ` Andy Shevchenko
2020-01-09 11:39 ` Mika Westerberg
2020-01-08 11:41 ` [PATCH v2 15/36] platform/x86: intel_mid_powerbtn: Convert to use " Mika Westerberg
2020-01-08 16:43 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 16/36] watchdog: intel-mid_wdt: " Mika Westerberg
2020-01-08 15:37 ` Guenter Roeck
2020-01-08 17:38 ` Andy Shevchenko
2020-01-08 11:41 ` Mika Westerberg [this message]
2020-01-08 16:45 ` [PATCH v2 17/36] platform/x86: intel_scu_ipcutil: " Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 18/36] platform/x86: intel_pmc_ipc: Make intel_pmc_gcr_update() static Mika Westerberg
2020-01-08 16:46 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 19/36] platform/x86: intel_pmc_ipc: Make intel_pmc_ipc_simple_command() static Mika Westerberg
2020-01-08 16:46 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 20/36] platform/x86: intel_pmc_ipc: Make intel_pmc_ipc_raw_cmd() static Mika Westerberg
2020-01-08 16:46 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 21/36] platform/x86: intel_pmc_ipc: Drop intel_pmc_gcr_read() and intel_pmc_gcr_write() Mika Westerberg
2020-01-08 16:47 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 22/36] platform/x86: intel_pmc_ipc: Drop ipc_data_readb() Mika Westerberg
2020-01-08 16:47 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 23/36] platform/x86: intel_pmc_ipc: Get rid of unnecessary includes Mika Westerberg
2020-01-08 16:47 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 24/36] platform/x86: intel_scu_ipc: Add function to remove SCU IPC Mika Westerberg
2020-01-08 17:28 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 25/36] platform/x86: intel_pmc_ipc: Start using " Mika Westerberg
2020-01-08 16:52 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 26/36] mfd: intel_soc_pmic: Add SCU IPC member to struct intel_soc_pmic Mika Westerberg
2020-01-08 17:31 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 27/36] mfd: intel_soc_pmic_bxtwc: Convert to use new SCU IPC API Mika Westerberg
2020-01-08 17:32 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 28/36] mfd: intel_soc_pmic_mrfld: " Mika Westerberg
2020-01-08 17:35 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 29/36] platform/x86: intel_telemetry: " Mika Westerberg
2020-01-08 16:54 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 30/36] platform/x86: intel_pmc_ipc: Drop intel_pmc_ipc_command() Mika Westerberg
2020-01-08 16:57 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 31/36] x86/platform/intel-mid: Add empty stubs for intel_scu_devices_[create|destroy]() Mika Westerberg
2020-01-08 17:36 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 32/36] platform/x86: intel_pmc_ipc: Move PCI IDs to intel_scu_pcidrv.c Mika Westerberg
2020-01-08 17:03 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 33/36] platform/x86: intel_pmc_ipc: Use octal permissions in sysfs attributes Mika Westerberg
2020-01-08 16:58 ` Andy Shevchenko
2020-01-08 11:41 ` [PATCH v2 34/36] platform/x86: intel_pmc_ipc: Convert to MFD Mika Westerberg
2020-01-09 11:43 ` Andy Shevchenko
2020-01-09 11:47 ` Mika Westerberg
2020-01-09 12:57 ` Mika Westerberg
2020-01-09 14:25 ` Andy Shevchenko
2020-01-08 11:42 ` [PATCH v2 35/36] mfd: intel_pmc_bxt: Switch to use driver->dev_groups Mika Westerberg
2020-01-08 17:30 ` Andy Shevchenko
2020-01-08 11:42 ` [PATCH v2 36/36] MAINTAINERS: Update entry for Intel Broxton PMC driver Mika Westerberg
2020-01-08 17:06 ` Andy Shevchenko
2020-01-08 17:34 ` [PATCH v2 00/36] platform/x86: Rework intel_scu_ipc and intel_pmc_ipc drivers Andy Shevchenko
2020-01-09 6:13 ` Mika Westerberg
2020-01-13 10:38 ` Lee Jones
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=20200108114201.27908-18-mika.westerberg@linux.intel.com \
--to=mika.westerberg@linux.intel.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=bp@alien8.de \
--cc=david.e.box@linux.intel.com \
--cc=dvhart@infradead.org \
--cc=gregkh@linuxfoundation.org \
--cc=heikki.krogerus@linux.intel.com \
--cc=hpa@zytor.com \
--cc=lee.jones@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=mingo@redhat.com \
--cc=platform-driver-x86@vger.kernel.org \
--cc=qipeng.zha@intel.com \
--cc=rajneesh.bhardwaj@linux.intel.com \
--cc=tglx@linutronix.de \
--cc=wim@linux-watchdog.org \
--cc=x86@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 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.