Linux IIO development
 help / color / mirror / Atom feed
From: Vasileios Amoiridis <vassilisamir@gmail.com>
To: jic23@kernel.org
Cc: dpfrey@gmail.com, himanshujha199640@gmail.com, lars@metafoo.de,
	linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org,
	mike.looijmans@topic.nl, vassilisamir@gmail.com
Subject: [PATCH v2 18/19] iio: chemical: bme680: Move forced mode setup in ->read_raw()
Date: Thu,  6 Jun 2024 23:23:12 +0200	[thread overview]
Message-ID: <20240606212313.207550-21-vassilisamir@gmail.com> (raw)
In-Reply-To: <20240606212313.207550-1-vassilisamir@gmail.com>

Whenever the sensor is set to forced mode, a TPHG cycle is
triggered and the values of temperature, pressure, humidity
and gas become ready to be read.

The setup of the forced mode to trigger measurements was located
inside the read_{temp/gas}() functions. This was not posing a
functional problem since read_{humid/press}() are internally
calling read_temp() so the forced mode is set through this call.

This is not very clear and it is kind of hidden that regardless
of the measurement, the setup of the forced mode needs to happen
before any measurement.

Signed-off-by: Vasileios Amoiridis <vassilisamir@gmail.com>
---
 drivers/iio/chemical/bme680_core.c | 28 ++++++++++------------------
 1 file changed, 10 insertions(+), 18 deletions(-)

diff --git a/drivers/iio/chemical/bme680_core.c b/drivers/iio/chemical/bme680_core.c
index 76b96993120f..b654a8cd31aa 100644
--- a/drivers/iio/chemical/bme680_core.c
+++ b/drivers/iio/chemical/bme680_core.c
@@ -572,15 +572,6 @@ static int bme680_read_temp(struct bme680_data *data, int *val)
 	u32 adc_temp;
 	s16 comp_temp;
 
-	/* set forced mode to trigger measurement */
-	ret = bme680_set_mode(data, true);
-	if (ret < 0)
-		return ret;
-
-	ret = bme680_wait_for_eoc(data);
-	if (ret)
-		return ret;
-
 	ret = regmap_bulk_read(data->regmap, BME680_REG_TEMP_MSB,
 			       data->buf, BME680_TEMP_NUM_BYTES);
 	if (ret < 0) {
@@ -683,15 +674,6 @@ static int bme680_read_gas(struct bme680_data *data,
 	u16 adc_gas_res, gas_regs_val;
 	u8 gas_range;
 
-	/* set forced mode to trigger measurement */
-	ret = bme680_set_mode(data, true);
-	if (ret < 0)
-		return ret;
-
-	ret = bme680_wait_for_eoc(data);
-	if (ret)
-		return ret;
-
 	ret = regmap_read(data->regmap, BME680_REG_MEAS_STAT_0, &data->check);
 	if (data->check & BME680_GAS_MEAS_BIT) {
 		dev_err(dev, "gas measurement incomplete\n");
@@ -730,9 +712,19 @@ static int bme680_read_raw(struct iio_dev *indio_dev,
 			   int *val, int *val2, long mask)
 {
 	struct bme680_data *data = iio_priv(indio_dev);
+	int ret;
 
 	guard(mutex)(&data->lock);
 
+	/* set forced mode to trigger measurement */
+	ret = bme680_set_mode(data, true);
+	if (ret < 0)
+		return ret;
+
+	ret = bme680_wait_for_eoc(data);
+	if (ret)
+		return ret;
+
 	switch (mask) {
 	case IIO_CHAN_INFO_PROCESSED:
 		switch (chan->type) {
-- 
2.25.1


  parent reply	other threads:[~2024-06-06 21:24 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-06 21:22 [PATCH v2 00/19] iio: chemical: bme680: Driver fixes and cleanup Vasileios Amoiridis
2024-06-06 21:22 ` [PATCH v2 01/19] iio: chemical: bme680: Fix pressure value output Vasileios Amoiridis
2024-06-09 11:00   ` Jonathan Cameron
2024-06-06 21:22 ` [PATCH v2 02/19] iio: chemical: bme680: Fix calibration data variable Vasileios Amoiridis
2024-06-09 11:00   ` Jonathan Cameron
2024-06-06 21:22 ` [PATCH v2 03/19] iio: chemical: bme680: Fix overflows in compensate() functions Vasileios Amoiridis
2024-06-09 11:01   ` Jonathan Cameron
2024-06-06 21:22 ` [PATCH v2 04/19] iio: chemical: bme680: Fix sensor data read operation Vasileios Amoiridis
2024-06-09 11:03   ` Jonathan Cameron
2024-06-06 21:22 ` [PATCH v2 05/19] iio: chemical: bme680: Fix typo in define Vasileios Amoiridis
2024-06-06 21:22 ` [PATCH v2 06/19] iio: chemical: bme680: Fix read/write ops to device by adding mutexes Vasileios Amoiridis
2024-06-09 10:56   ` Jonathan Cameron
2024-06-06 21:22 ` [PATCH v2 07/19] iio: chemical: bme680: Drop unnecessary casts and correct adc data types Vasileios Amoiridis
2024-06-06 21:23 ` [PATCH v2 08/19] iio: chemical: bme680: Remove remaining ACPI-only stuff Vasileios Amoiridis
2024-06-06 21:23 ` [PATCH v2 09/19] iio: chemical: bme680: Sort headers alphabetically Vasileios Amoiridis
2024-06-06 21:23 ` [PATCH v2 10/19] iio: chemical: bme680: Remove duplicate register read Vasileios Amoiridis
2024-06-06 21:23 ` [PATCH v2 11/19] iio: chemical: bme680: Use bulk reads for calibration data Vasileios Amoiridis
2024-06-06 21:23 ` [PATCH v2 12/19] iio: chemical: bme680: Allocate IIO device before chip initialization Vasileios Amoiridis
2024-06-06 21:23 ` [PATCH v2 13/19] iio: chemical: bme680: Add read buffers in DMA safe region Vasileios Amoiridis
2024-06-07 16:11   ` Vasileios Amoiridis
2024-06-06 21:23 ` [PATCH v2 13/19] iio: chemical: bme680: Add read buffers in read/write buffer union Vasileios Amoiridis
2024-06-06 21:23 ` [PATCH v2 13/19] iio: chemical: bme680: Add read buffers in union Vasileios Amoiridis
2024-06-07 16:12   ` Vasileios Amoiridis
2024-06-06 21:23 ` [PATCH v2 14/19] iio: chemical: bme680: Make error checks consistent Vasileios Amoiridis
2024-06-06 21:23 ` [PATCH v2 15/19] iio: chemical: bme680: Modify startup procedure Vasileios Amoiridis
2024-06-09 11:07   ` Jonathan Cameron
2024-06-06 21:23 ` [PATCH v2 16/19] iio: chemical: bme680: Move probe errors to dev_err_probe() Vasileios Amoiridis
2024-06-06 21:23 ` [PATCH v2 17/19] iio: chemical: bme680: Remove redundant gas configuration Vasileios Amoiridis
2024-06-09 11:08   ` Jonathan Cameron
2024-06-06 21:23 ` Vasileios Amoiridis [this message]
2024-06-06 21:23 ` [PATCH v2 19/19] iio: chemical: bme680: Refactorize reading functions Vasileios Amoiridis
2024-06-09 11:12   ` Jonathan Cameron
2024-06-09 23:02     ` Vasileios Amoiridis

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=20240606212313.207550-21-vassilisamir@gmail.com \
    --to=vassilisamir@gmail.com \
    --cc=dpfrey@gmail.com \
    --cc=himanshujha199640@gmail.com \
    --cc=jic23@kernel.org \
    --cc=lars@metafoo.de \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mike.looijmans@topic.nl \
    /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