From: Peter Meerwald-Stadler <pmeerw@pmeerw.net>
To: Jonathan Cameron <jic23@kernel.org>
Cc: linux-iio@vger.kernel.org,
Peter Meerwald-Stadler <pmeerw@pmeerw.net>,
Matt Ranostay <matt.ranostay@konsulko.com>
Subject: [PATCH v2 11/13] iio: health: max30102: Prepare for copying varying number of measurements
Date: Fri, 27 Oct 2017 21:45:41 +0200 [thread overview]
Message-ID: <1509133543-4597-12-git-send-email-pmeerw@pmeerw.net> (raw)
In-Reply-To: <1509133543-4597-1-git-send-email-pmeerw@pmeerw.net>
Current code assumes always 2 measurements (6 bytes) have to be copied,
prepare for more flexibility
Signed-off-by: Peter Meerwald-Stadler <pmeerw@pmeerw.net>
Cc: Matt Ranostay <matt.ranostay@konsulko.com>
---
drivers/iio/health/max30102.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/drivers/iio/health/max30102.c b/drivers/iio/health/max30102.c
index 1c7fe63..86058f0 100644
--- a/drivers/iio/health/max30102.c
+++ b/drivers/iio/health/max30102.c
@@ -58,7 +58,7 @@ enum max3012_led_idx {
#define MAX30102_REG_FIFO_OVR_CTR 0x05
#define MAX30102_REG_FIFO_RD_PTR 0x06
#define MAX30102_REG_FIFO_DATA 0x07
-#define MAX30102_REG_FIFO_DATA_ENTRY_LEN 6
+#define MAX30102_REG_FIFO_DATA_BYTES 3
#define MAX30102_REG_FIFO_CONFIG 0x08
#define MAX30102_REG_FIFO_CONFIG_AVG_4SAMPLES BIT(1)
@@ -198,6 +198,11 @@ static inline int max30102_fifo_count(struct max30102_data *data)
return 0;
}
+#define MAX30102_COPY_DATA(i) \
+ memcpy(&data->processed_buffer[(i)], \
+ &buffer[(i) * MAX30102_REG_FIFO_DATA_BYTES], \
+ MAX30102_REG_FIFO_DATA_BYTES)
+
static int max30102_read_measurement(struct max30102_data *data)
{
int ret;
@@ -205,13 +210,13 @@ static int max30102_read_measurement(struct max30102_data *data)
ret = i2c_smbus_read_i2c_block_data(data->client,
MAX30102_REG_FIFO_DATA,
- MAX30102_REG_FIFO_DATA_ENTRY_LEN,
+ 2 * MAX30102_REG_FIFO_DATA_BYTES,
buffer);
- memcpy(&data->processed_buffer[0], &buffer[0], 3);
- memcpy(&data->processed_buffer[1], &buffer[3], 3);
+ MAX30102_COPY_DATA(0);
+ MAX30102_COPY_DATA(1);
- return (ret == MAX30102_REG_FIFO_DATA_ENTRY_LEN) ? 0 : -EINVAL;
+ return (ret == 2 * MAX30102_REG_FIFO_DATA_BYTES) ? 0 : -EINVAL;
}
static irqreturn_t max30102_interrupt_handler(int irq, void *private)
--
2.7.4
next prev parent reply other threads:[~2017-10-27 19:45 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-27 19:45 [PATCH v2 00/13] iio: health: Add MAX30105 support to max30102 driver Peter Meerwald-Stadler
2017-10-27 19:45 ` [PATCH v2 01/13] iio: health: max30102: Temperature should be in milli Celsius Peter Meerwald-Stadler
2017-11-19 21:09 ` Matt Ranostay
2017-11-25 14:04 ` Jonathan Cameron
2017-10-27 19:45 ` [PATCH v2 02/13] iio: health: max30102: Fix missing newline in dev_err Peter Meerwald-Stadler
2017-11-19 20:28 ` Matt Ranostay
2017-11-25 14:05 ` Jonathan Cameron
2017-10-27 19:45 ` [PATCH v2 03/13] iio: health: max30102: Remove inconsistent full stop in error message Peter Meerwald-Stadler
2017-11-19 20:28 ` Matt Ranostay
2017-11-25 14:06 ` Jonathan Cameron
2017-10-27 19:45 ` [PATCH v2 04/13] iio: health: max30102: Fix mode config values Peter Meerwald-Stadler
2017-11-19 20:46 ` Matt Ranostay
2017-11-25 14:07 ` Jonathan Cameron
2017-10-27 19:45 ` [PATCH v2 05/13] iio: health: max30102: Check retval of powermode function Peter Meerwald-Stadler
2017-11-19 20:43 ` Matt Ranostay
2017-11-25 14:08 ` Jonathan Cameron
2017-10-27 19:45 ` [PATCH v2 06/13] iio: health: max30102: Add check for part ID Peter Meerwald-Stadler
2017-11-19 20:38 ` Matt Ranostay
2017-11-25 14:11 ` Jonathan Cameron
2017-10-27 19:45 ` [PATCH v2 07/13] iio: health: max30102: Introduce intensity channel macro Peter Meerwald-Stadler
2017-11-19 20:37 ` Matt Ranostay
2017-11-25 14:12 ` Jonathan Cameron
2017-10-27 19:45 ` [PATCH v2 08/13] iio: health: max30102: Add power enable parameter to get_temp function Peter Meerwald-Stadler
2017-11-19 20:41 ` Matt Ranostay
2017-11-25 14:15 ` Jonathan Cameron
2017-10-27 19:45 ` [PATCH v2 09/13] iio: health: max30102: Introduce indices for LED channels Peter Meerwald-Stadler
2017-11-19 20:42 ` Matt Ranostay
2017-11-25 14:16 ` Jonathan Cameron
2017-10-27 19:45 ` [PATCH v2 10/13] iio: health: max30102: Move mode setting to buffer_postenable Peter Meerwald-Stadler
2017-11-19 20:56 ` Matt Ranostay
2017-11-25 14:17 ` Jonathan Cameron
2017-10-27 19:45 ` Peter Meerwald-Stadler [this message]
2017-11-19 20:52 ` [PATCH v2 11/13] iio: health: max30102: Prepare for copying varying number of measurements Matt Ranostay
2017-11-25 14:18 ` Jonathan Cameron
2017-10-27 19:45 ` [PATCH v2 12/13] iio: health: max30102: Add MAX30105 support Peter Meerwald-Stadler
2017-11-19 21:00 ` Matt Ranostay
2017-11-25 14:19 ` Jonathan Cameron
2017-10-27 19:45 ` [PATCH v2 13/13] dt-bindings: iio: health: Add MAX30105 support to max30102.txt Peter Meerwald-Stadler
2017-11-19 20:35 ` Matt Ranostay
2017-11-25 14:20 ` Jonathan Cameron
2017-11-02 14:44 ` [PATCH v2 00/13] iio: health: Add MAX30105 support to max30102 driver Jonathan Cameron
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=1509133543-4597-12-git-send-email-pmeerw@pmeerw.net \
--to=pmeerw@pmeerw.net \
--cc=jic23@kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=matt.ranostay@konsulko.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).