[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20251218-mprls_cleanup-v1-7-b36a170f1a5c@subdimension.ro>
Date: Thu, 18 Dec 2025 13:05:49 +0200
From: Petre Rodan <petre.rodan@...dimension.ro>
To: Jonathan Cameron <jic23@...nel.org>,
David Lechner <dlechner@...libre.com>,
Nuno Sá <nuno.sa@...log.com>,
Andy Shevchenko <andy@...nel.org>, Andreas Klinger <ak@...klinger.de>
Cc: linux-iio@...r.kernel.org, linux-kernel@...r.kernel.org,
Jonathan Cameron <Jonathan.Cameron@...wei.com>
Subject: [PATCH 07/14] iio: pressure: mprls0025pa: make ops->write function
consistent
Make the i2c bus write operation more consistent with the rest of the
driver.
Also move defines only used by core out of the common header file.
Signed-off-by: Petre Rodan <petre.rodan@...dimension.ro>
---
drivers/iio/pressure/mprls0025pa.c | 5 +++++
drivers/iio/pressure/mprls0025pa.h | 4 ----
drivers/iio/pressure/mprls0025pa_i2c.c | 9 ++++++---
3 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/drivers/iio/pressure/mprls0025pa.c b/drivers/iio/pressure/mprls0025pa.c
index 7cc8dd0d8476..7f8dc47d7073 100644
--- a/drivers/iio/pressure/mprls0025pa.c
+++ b/drivers/iio/pressure/mprls0025pa.c
@@ -39,6 +39,11 @@
#define MPR_ST_ERR_FLAG (MPR_ST_BUSY | MPR_ST_MEMORY | MPR_ST_MATH)
+#define MPR_CMD_NOP 0xf0
+#define MPR_CMD_SYNC 0xaa
+#define MPR_PKT_NOP_LEN MPR_MEASUREMENT_RD_SIZE
+#define MPR_PKT_SYNC_LEN 3
+
/*
* support _RAW sysfs interface:
*
diff --git a/drivers/iio/pressure/mprls0025pa.h b/drivers/iio/pressure/mprls0025pa.h
index 83dbc3ef8ba4..50c99ddc8937 100644
--- a/drivers/iio/pressure/mprls0025pa.h
+++ b/drivers/iio/pressure/mprls0025pa.h
@@ -20,10 +20,6 @@
#include <linux/iio/iio.h>
#define MPR_MEASUREMENT_RD_SIZE 4
-#define MPR_CMD_NOP 0xf0
-#define MPR_CMD_SYNC 0xaa
-#define MPR_PKT_NOP_LEN MPR_MEASUREMENT_RD_SIZE
-#define MPR_PKT_SYNC_LEN 3
struct device;
diff --git a/drivers/iio/pressure/mprls0025pa_i2c.c b/drivers/iio/pressure/mprls0025pa_i2c.c
index 0fe8cfe0d7e7..5508a1681b7b 100644
--- a/drivers/iio/pressure/mprls0025pa_i2c.c
+++ b/drivers/iio/pressure/mprls0025pa_i2c.c
@@ -34,16 +34,19 @@ static int mpr_i2c_read(struct mpr_data *data, const u8 unused, const u8 cnt)
return 0;
}
-static int mpr_i2c_write(struct mpr_data *data, const u8 cmd, const u8 unused)
+static int mpr_i2c_write(struct mpr_data *data, const u8 cmd, const u8 cnt)
{
int ret;
struct i2c_client *client = to_i2c_client(data->dev);
+ if (cnt > MPR_MEASUREMENT_RD_SIZE)
+ return -EOVERFLOW;
+
data->tx_buf[0] = cmd;
- ret = i2c_master_send(client, data->tx_buf, MPR_PKT_SYNC_LEN);
+ ret = i2c_master_send(client, data->tx_buf, cnt);
if (ret < 0)
return ret;
- else if (ret != MPR_PKT_SYNC_LEN)
+ else if (ret != cnt)
return -EIO;
return 0;
--
2.51.2
Powered by blists - more mailing lists