From: Jonathan Cameron <jic23@kernel.org>
To: Vasileios Amoiridis <vassilisamir@gmail.com>
Cc: lars@metafoo.de, robh@kernel.org, krzk+dt@kernel.org,
conor+dt@kernel.org, andriy.shevchenko@linux.intel.com,
anshulusr@gmail.com, gustavograzs@gmail.com,
linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 04/13] iio: chemical: bme680: refactorize set_mode() mode
Date: Sun, 27 Oct 2024 09:59:39 +0000 [thread overview]
Message-ID: <20241027095939.5ad376ad@jic23-huawei> (raw)
In-Reply-To: <20241021195316.58911-5-vassilisamir@gmail.com>
On Mon, 21 Oct 2024 21:53:07 +0200
Vasileios Amoiridis <vassilisamir@gmail.com> wrote:
> Refactorize the set_mode() function to use an external enum that
> describes the possible modes of the BME680 device instead of using
> true/false variables for selecting SLEEPING/FORCED mode.
>
> Signed-off-by: Vasileios Amoiridis <vassilisamir@gmail.com>
I changed my mind on this one...
> ---
> drivers/iio/chemical/bme680_core.c | 30 +++++++++++++-----------------
> 1 file changed, 13 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/iio/chemical/bme680_core.c b/drivers/iio/chemical/bme680_core.c
> index d228f90b4dc6..9002519d2c33 100644
> --- a/drivers/iio/chemical/bme680_core.c
> +++ b/drivers/iio/chemical/bme680_core.c
> @@ -95,6 +95,11 @@ struct bme680_calib {
> s8 range_sw_err;
> };
>
> +enum bme680_op_mode {
> + BME680_SLEEP,
> + BME680_FORCED,
Use this enum to replace the existing BME680_MODE_SLEEP etc definitions
rather than adding another one.
Also assign explicit values as you are going to write this into a register
so they matter.
> +};
> +
> struct bme680_data {
> struct regmap *regmap;
> struct bme680_calib bme680;
> @@ -502,23 +507,16 @@ static u8 bme680_calc_heater_dur(u16 dur)
> return durval;
> }
>
> -static int bme680_set_mode(struct bme680_data *data, bool mode)
> +static int bme680_set_mode(struct bme680_data *data, enum bme680_op_mode mode)
> {
> struct device *dev = regmap_get_device(data->regmap);
> int ret;
>
> - if (mode) {
> - ret = regmap_write_bits(data->regmap, BME680_REG_CTRL_MEAS,
> - BME680_MODE_MASK, BME680_MODE_FORCED);
> - if (ret < 0)
> - dev_err(dev, "failed to set forced mode\n");
> -
> - } else {
> - ret = regmap_write_bits(data->regmap, BME680_REG_CTRL_MEAS,
> - BME680_MODE_MASK, BME680_MODE_SLEEP);
> - if (ret < 0)
> - dev_err(dev, "failed to set sleep mode\n");
> -
> + ret = regmap_write_bits(data->regmap, BME680_REG_CTRL_MEAS,
> + BME680_MODE_MASK, mode);
This is the problematic code. No obvious reason the enum should match the original
values. It does, but that should be made true by only having an enum, not definitions
and an enum.
> + if (ret < 0) {
> + dev_err(dev, "failed to set ctrl_meas register\n");
> + return ret;
> }
>
> return ret;
> @@ -615,8 +613,7 @@ static int bme680_gas_config(struct bme680_data *data)
> int ret;
> u8 heatr_res, heatr_dur;
>
> - /* Go to sleep */
> - ret = bme680_set_mode(data, false);
> + ret = bme680_set_mode(data, BME680_SLEEP);
> if (ret < 0)
> return ret;
>
> @@ -756,8 +753,7 @@ static int bme680_read_raw(struct iio_dev *indio_dev,
>
> guard(mutex)(&data->lock);
>
> - /* set forced mode to trigger measurement */
> - ret = bme680_set_mode(data, true);
> + ret = bme680_set_mode(data, BME680_FORCED);
> if (ret < 0)
> return ret;
>
next prev parent reply other threads:[~2024-10-27 9:59 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-21 19:53 [PATCH v2 00/13]: chemical: bme680: 2nd set of cleanup Vasileios Amoiridis
2024-10-21 19:53 ` [PATCH v2 01/13] iio: chemical: bme680: Fix missing header Vasileios Amoiridis
2024-10-21 20:13 ` Greg KH
2024-10-27 9:48 ` Jonathan Cameron
2024-10-21 19:53 ` [PATCH v2 02/13] iio: chemical: bme680: optimize startup time Vasileios Amoiridis
2024-10-27 9:53 ` Jonathan Cameron
2024-10-21 19:53 ` [PATCH v2 03/13] iio: chemical: bme680: avoid using camel case Vasileios Amoiridis
2024-10-27 9:54 ` Jonathan Cameron
2024-10-21 19:53 ` [PATCH v2 04/13] iio: chemical: bme680: refactorize set_mode() mode Vasileios Amoiridis
2024-10-27 9:56 ` Jonathan Cameron
2024-10-27 9:59 ` Jonathan Cameron [this message]
2024-10-29 23:28 ` Vasileios Amoiridis
2024-10-21 19:53 ` [PATCH v2 05/13] iio: chemical: bme680: move to fsleep() Vasileios Amoiridis
2024-10-27 10:01 ` Jonathan Cameron
2024-10-21 19:53 ` [PATCH v2 06/13] iio: chemical: bme680: Fix indentation and unnecessary spaces Vasileios Amoiridis
2024-10-27 10:08 ` Jonathan Cameron
2024-10-27 10:10 ` Jonathan Cameron
2024-10-21 19:53 ` [PATCH v2 07/13] iio: chemical: bme680: generalize read_*() functions Vasileios Amoiridis
2024-10-27 10:11 ` Jonathan Cameron
2024-10-21 19:53 ` [PATCH v2 08/13] iio: chemical: bme680: Add SCALE and RAW channels Vasileios Amoiridis
2024-10-27 10:12 ` Jonathan Cameron
2024-10-21 19:53 ` [PATCH v2 09/13] iio: chemical: bme680: Add triggered buffer support Vasileios Amoiridis
2024-10-27 10:18 ` Jonathan Cameron
2024-10-21 19:53 ` [PATCH v2 10/13] iio: chemical: bme680: Add support for preheat current Vasileios Amoiridis
2024-10-21 19:53 ` [PATCH v2 11/13] dt-bindings: iio: add binding for BME680 driver Vasileios Amoiridis
2024-10-21 21:22 ` Rob Herring (Arm)
2024-10-22 13:41 ` Rob Herring
2024-10-22 17:24 ` Jonathan Cameron
2024-10-21 19:53 ` [PATCH v2 12/13] iio: chemical: bme680: add regulators Vasileios Amoiridis
2024-10-21 19:53 ` [PATCH v2 13/13] iio: chemical: bme680: add power management Vasileios Amoiridis
2024-10-27 10:30 ` Jonathan Cameron
2024-10-30 0:24 ` Vasileios Amoiridis
2024-10-30 20:35 ` 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=20241027095939.5ad376ad@jic23-huawei \
--to=jic23@kernel.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=anshulusr@gmail.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=gustavograzs@gmail.com \
--cc=krzk+dt@kernel.org \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=robh@kernel.org \
--cc=vassilisamir@gmail.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).