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 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.