linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/15] iio: fix write_event_config signature
@ 2024-10-31 15:26 Julien Stephan
  2024-10-31 15:26 ` [PATCH v2 01/15] iio: light: ltr390: simplify code in write_event_config callback Julien Stephan
                   ` (14 more replies)
  0 siblings, 15 replies; 36+ messages in thread
From: Julien Stephan @ 2024-10-31 15:26 UTC (permalink / raw)
  To: Mudit Sharma, Jonathan Cameron, Lars-Peter Clausen, Anshul Dalal,
	Javier Carrasco, Jean-Baptiste Maneyrol, Michael Hennerich,
	Cosmin Tanislav, Ramona Gradinariu, Antoniu Miclaus,
	Dan Robertson, Marcelo Schmitt, Matteo Martelli,
	Anand Ashok Dumbre, Michal Simek, Mariel Tinaco, Jagath Jog J,
	Lorenzo Bianconi, Subhajit Ghosh, Kevin Tsai, Linus Walleij,
	Benson Leung, Guenter Roeck
  Cc: linux-iio, linux-kernel, linux-arm-kernel, chrome-platform,
	Julien Stephan, Julia Lawall

Hello,

This series update the write_event_config callback signature to use
a boolean instead of an int for state variable. iio_ev_state_store
is actually using kstrtobool to check user input, then gives the
converted boolean value to write_event_config.

First, fix the write_event_config callbacks from iio drivers that are
checking state input, or that are converting state to bool. This is
useless code, then update signature.

This patch has been partially written using coccinelle with the
following script:

$ cat iio-bool.cocci
// Options: --all-includes

virtual patch

@c1@
identifier iioinfo;
identifier wecfunc;
@@
 static const struct iio_info iioinfo = {
        ...,
        .write_event_config =
(
 wecfunc
|
 &wecfunc
),
        ...,
 };

@@
identifier c1.wecfunc;
identifier indio_dev, chan, type, dir, state;
@@
 int wecfunc(struct iio_dev *indio_dev, const struct iio_chan_spec *chan, enum iio_event_type type, enum iio_event_direction dir,
-int
+bool
 state) {
  ...
 }

make coccicheck MODE=patch COCCI=iio-bool.cocci M=drivers/iio

Unfortunately, this script didn't match all files:
* all write_event_config callbacks using iio_device_claim_direct_scoped
  were not detected and not patched.
* all files that do not assign and declare the write_event_config
  callback in the same file.

iio.h was also manually updated.

The patch was build tested using allmodconfig config.

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
---
Changes in v2:
- removed commits that were already applied
- added new commits to fix comments from Jonathan Cameron: cleanup code
  in few callbacks to update driver internal function signature to also use
  bool for state and update the driver internal state variable to bool.
- few minor fixes along the way on different driver
- Link to v1: https://lore.kernel.org/r/20241024-iio-fix-write-event-config-signature-v1-0-7d29e5a31b00@baylibre.com

---
Julien Stephan (15):
      iio: light: ltr390: simplify code in write_event_config callback
      iio: proximity: hx9023s: simplify code in write_event_config callback
      iio: light: tsl2772: simplify code in write_event_config callback
      iio: proximity: irsd200: simplify code in write_event_config callback
      iio: proximity: sx9500: simplify code in write_event_config callback
      iio: light: adux1020: write_event_config: use local variable for interrupt value
      iio: fix write_event_config signature
      iio: accel: mma9551: use bool for event state
      iio: accel: sca3000: use bool for event state
      iio: imu: bmi323: use bool for event state
      iio: imu: st_lsm6dsx: use bool for event state
      iio: light: apds9300: use bool for event state
      iio: light: apds9306: simplifies if branch in apds9306_write_event_config
      iio: light: apds9960: convert als_int and pxs_int to bool
      iio: light: apds9960: remove useless return

 drivers/iio/accel/adxl367.c                    |  2 +-
 drivers/iio/accel/adxl372.c                    |  2 +-
 drivers/iio/accel/adxl380.c                    |  2 +-
 drivers/iio/accel/bma400_core.c                |  2 +-
 drivers/iio/accel/bmc150-accel-core.c          |  2 +-
 drivers/iio/accel/fxls8962af-core.c            |  2 +-
 drivers/iio/accel/kxcjk-1013.c                 |  2 +-
 drivers/iio/accel/mma8452.c                    |  2 +-
 drivers/iio/accel/mma9551.c                    |  8 ++++----
 drivers/iio/accel/mma9553.c                    |  3 ++-
 drivers/iio/accel/sca3000.c                    |  6 +++---
 drivers/iio/adc/ad7091r-base.c                 |  3 ++-
 drivers/iio/adc/ad7291.c                       |  2 +-
 drivers/iio/adc/ad799x.c                       |  2 +-
 drivers/iio/adc/hi8435.c                       |  2 +-
 drivers/iio/adc/max1363.c                      |  2 +-
 drivers/iio/adc/pac1921.c                      |  3 ++-
 drivers/iio/adc/palmas_gpadc.c                 |  2 +-
 drivers/iio/adc/ti-ads1015.c                   |  2 +-
 drivers/iio/adc/xilinx-ams.c                   |  2 +-
 drivers/iio/adc/xilinx-xadc-events.c           |  2 +-
 drivers/iio/adc/xilinx-xadc.h                  |  2 +-
 drivers/iio/cdc/ad7150.c                       |  2 +-
 drivers/iio/dac/ad5421.c                       |  2 +-
 drivers/iio/dac/ad8460.c                       |  2 +-
 drivers/iio/dummy/iio_simple_dummy.h           |  2 +-
 drivers/iio/dummy/iio_simple_dummy_events.c    |  2 +-
 drivers/iio/gyro/bmg160_core.c                 |  2 +-
 drivers/iio/imu/bmi323/bmi323_core.c           | 10 +++++-----
 drivers/iio/imu/inv_mpu6050/inv_mpu_core.c     |  2 +-
 drivers/iio/imu/kmx61.c                        |  2 +-
 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c   |  4 ++--
 drivers/iio/light/adux1020.c                   | 11 ++++++-----
 drivers/iio/light/apds9300.c                   | 10 +++++-----
 drivers/iio/light/apds9306.c                   |  7 ++-----
 drivers/iio/light/apds9960.c                   |  8 +++-----
 drivers/iio/light/bh1745.c                     |  2 +-
 drivers/iio/light/cm36651.c                    |  2 +-
 drivers/iio/light/gp2ap002.c                   |  2 +-
 drivers/iio/light/gp2ap020a00f.c               |  2 +-
 drivers/iio/light/iqs621-als.c                 |  2 +-
 drivers/iio/light/ltr390.c                     |  7 ++-----
 drivers/iio/light/ltr501.c                     |  2 +-
 drivers/iio/light/max44009.c                   |  2 +-
 drivers/iio/light/opt3001.c                    |  2 +-
 drivers/iio/light/stk3310.c                    |  2 +-
 drivers/iio/light/tcs3472.c                    |  2 +-
 drivers/iio/light/tsl2563.c                    |  2 +-
 drivers/iio/light/tsl2591.c                    |  2 +-
 drivers/iio/light/tsl2772.c                    |  6 +++---
 drivers/iio/light/us5182d.c                    |  2 +-
 drivers/iio/light/vcnl4000.c                   |  5 +++--
 drivers/iio/light/veml6030.c                   |  2 +-
 drivers/iio/position/iqs624-pos.c              |  2 +-
 drivers/iio/proximity/aw96103.c                |  2 +-
 drivers/iio/proximity/cros_ec_mkbp_proximity.c |  2 +-
 drivers/iio/proximity/hx9023s.c                |  4 ++--
 drivers/iio/proximity/irsd200.c                |  5 +++--
 drivers/iio/proximity/sx9500.c                 |  6 +++---
 drivers/iio/proximity/sx_common.c              |  2 +-
 drivers/iio/proximity/sx_common.h              |  2 +-
 drivers/iio/proximity/vcnl3020.c               |  2 +-
 drivers/iio/temperature/mcp9600.c              |  2 +-
 drivers/iio/temperature/tmp007.c               |  2 +-
 include/linux/iio/iio.h                        |  2 +-
 65 files changed, 100 insertions(+), 102 deletions(-)
---
base-commit: ce2785a44e784240e3dbb142942c9d88c2cac3d0
change-id: 20241023-iio-fix-write-event-config-signature-1bc1f52fdedf

Best regards,
-- 
Julien Stephan <jstephan@baylibre.com>



^ permalink raw reply	[flat|nested] 36+ messages in thread

* [PATCH v2 01/15] iio: light: ltr390: simplify code in write_event_config callback
  2024-10-31 15:26 [PATCH v2 00/15] iio: fix write_event_config signature Julien Stephan
@ 2024-10-31 15:26 ` Julien Stephan
  2024-11-01 15:32   ` Jonathan Cameron
  2024-10-31 15:26 ` [PATCH v2 02/15] iio: proximity: hx9023s: " Julien Stephan
                   ` (13 subsequent siblings)
  14 siblings, 1 reply; 36+ messages in thread
From: Julien Stephan @ 2024-10-31 15:26 UTC (permalink / raw)
  To: Mudit Sharma, Jonathan Cameron, Lars-Peter Clausen, Anshul Dalal,
	Javier Carrasco, Jean-Baptiste Maneyrol, Michael Hennerich,
	Cosmin Tanislav, Ramona Gradinariu, Antoniu Miclaus,
	Dan Robertson, Marcelo Schmitt, Matteo Martelli,
	Anand Ashok Dumbre, Michal Simek, Mariel Tinaco, Jagath Jog J,
	Lorenzo Bianconi, Subhajit Ghosh, Kevin Tsai, Linus Walleij,
	Benson Leung, Guenter Roeck
  Cc: linux-iio, linux-kernel, linux-arm-kernel, chrome-platform,
	Julien Stephan

iio_ev_state_store is actually using kstrtobool to check user
input, then gives the converted boolean value to the write_event_config
callback.

Remove useless code in write_event_config callback.

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
---
 drivers/iio/light/ltr390.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/iio/light/ltr390.c b/drivers/iio/light/ltr390.c
index 8e0a3fc3d923a6f65d2a629c87e7bfd35d82a507..3bdffb6360bcbaab4df1a2d39c8ea3813b5d6bd3 100644
--- a/drivers/iio/light/ltr390.c
+++ b/drivers/iio/light/ltr390.c
@@ -558,10 +558,7 @@ static int ltr390_write_event_config(struct iio_dev *indio_dev,
 	struct ltr390_data *data = iio_priv(indio_dev);
 	int ret;
 
-	if (state != 1  && state != 0)
-		return -EINVAL;
-
-	if (state == 0)
+	if (!state)
 		return regmap_clear_bits(data->regmap, LTR390_INT_CFG, LTR390_LS_INT_EN);
 
 	guard(mutex)(&data->lock);

-- 
2.47.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH v2 02/15] iio: proximity: hx9023s: simplify code in write_event_config callback
  2024-10-31 15:26 [PATCH v2 00/15] iio: fix write_event_config signature Julien Stephan
  2024-10-31 15:26 ` [PATCH v2 01/15] iio: light: ltr390: simplify code in write_event_config callback Julien Stephan
@ 2024-10-31 15:26 ` Julien Stephan
  2024-11-01 15:34   ` Jonathan Cameron
  2024-10-31 15:26 ` [PATCH v2 03/15] iio: light: tsl2772: " Julien Stephan
                   ` (12 subsequent siblings)
  14 siblings, 1 reply; 36+ messages in thread
From: Julien Stephan @ 2024-10-31 15:26 UTC (permalink / raw)
  To: Mudit Sharma, Jonathan Cameron, Lars-Peter Clausen, Anshul Dalal,
	Javier Carrasco, Jean-Baptiste Maneyrol, Michael Hennerich,
	Cosmin Tanislav, Ramona Gradinariu, Antoniu Miclaus,
	Dan Robertson, Marcelo Schmitt, Matteo Martelli,
	Anand Ashok Dumbre, Michal Simek, Mariel Tinaco, Jagath Jog J,
	Lorenzo Bianconi, Subhajit Ghosh, Kevin Tsai, Linus Walleij,
	Benson Leung, Guenter Roeck
  Cc: linux-iio, linux-kernel, linux-arm-kernel, chrome-platform,
	Julien Stephan

iio_ev_state_store is actually using kstrtobool to check user
input, then gives the converted boolean value to the write_event_config
callback.

Remove useless code in write_event_config callback.

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
---
 drivers/iio/proximity/hx9023s.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/iio/proximity/hx9023s.c b/drivers/iio/proximity/hx9023s.c
index d8fb34060d3db88a3ba5ecdc209b14be8e42e8b9..38441b1ee040c7c26047b0cb2ac443ecb8396df3 100644
--- a/drivers/iio/proximity/hx9023s.c
+++ b/drivers/iio/proximity/hx9023s.c
@@ -879,7 +879,7 @@ static int hx9023s_write_event_config(struct iio_dev *indio_dev,
 	struct hx9023s_data *data = iio_priv(indio_dev);
 
 	if (test_bit(chan->channel, &data->chan_in_use)) {
-		hx9023s_ch_en(data, chan->channel, !!state);
+		hx9023s_ch_en(data, chan->channel, state);
 		__assign_bit(chan->channel, &data->chan_event,
 			     data->ch_data[chan->channel].enable);
 	}

-- 
2.47.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH v2 03/15] iio: light: tsl2772: simplify code in write_event_config callback
  2024-10-31 15:26 [PATCH v2 00/15] iio: fix write_event_config signature Julien Stephan
  2024-10-31 15:26 ` [PATCH v2 01/15] iio: light: ltr390: simplify code in write_event_config callback Julien Stephan
  2024-10-31 15:26 ` [PATCH v2 02/15] iio: proximity: hx9023s: " Julien Stephan
@ 2024-10-31 15:26 ` Julien Stephan
  2024-11-01 15:35   ` Jonathan Cameron
  2024-10-31 15:26 ` [PATCH v2 04/15] iio: proximity: irsd200: " Julien Stephan
                   ` (11 subsequent siblings)
  14 siblings, 1 reply; 36+ messages in thread
From: Julien Stephan @ 2024-10-31 15:26 UTC (permalink / raw)
  To: Mudit Sharma, Jonathan Cameron, Lars-Peter Clausen, Anshul Dalal,
	Javier Carrasco, Jean-Baptiste Maneyrol, Michael Hennerich,
	Cosmin Tanislav, Ramona Gradinariu, Antoniu Miclaus,
	Dan Robertson, Marcelo Schmitt, Matteo Martelli,
	Anand Ashok Dumbre, Michal Simek, Mariel Tinaco, Jagath Jog J,
	Lorenzo Bianconi, Subhajit Ghosh, Kevin Tsai, Linus Walleij,
	Benson Leung, Guenter Roeck
  Cc: linux-iio, linux-kernel, linux-arm-kernel, chrome-platform,
	Julien Stephan

iio_ev_state_store is actually using kstrtobool to check user
input, then gives the converted boolean value to the write_event_config
callback.

Remove useless code in write_event_config callback.

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
---
 drivers/iio/light/tsl2772.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/iio/light/tsl2772.c b/drivers/iio/light/tsl2772.c
index cab468a82b616a23394977da1d8822d29d8941d3..26082f239c4c3aeabfe73ed100d6e885f5266329 100644
--- a/drivers/iio/light/tsl2772.c
+++ b/drivers/iio/light/tsl2772.c
@@ -1086,9 +1086,9 @@ static int tsl2772_write_interrupt_config(struct iio_dev *indio_dev,
 	struct tsl2772_chip *chip = iio_priv(indio_dev);
 
 	if (chan->type == IIO_INTENSITY)
-		chip->settings.als_interrupt_en = val ? true : false;
+		chip->settings.als_interrupt_en = val;
 	else
-		chip->settings.prox_interrupt_en = val ? true : false;
+		chip->settings.prox_interrupt_en = val;
 
 	return tsl2772_invoke_change(indio_dev);
 }

-- 
2.47.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH v2 04/15] iio: proximity: irsd200: simplify code in write_event_config callback
  2024-10-31 15:26 [PATCH v2 00/15] iio: fix write_event_config signature Julien Stephan
                   ` (2 preceding siblings ...)
  2024-10-31 15:26 ` [PATCH v2 03/15] iio: light: tsl2772: " Julien Stephan
@ 2024-10-31 15:26 ` Julien Stephan
  2024-11-01 15:36   ` Jonathan Cameron
  2024-10-31 15:27 ` [PATCH v2 05/15] iio: proximity: sx9500: " Julien Stephan
                   ` (10 subsequent siblings)
  14 siblings, 1 reply; 36+ messages in thread
From: Julien Stephan @ 2024-10-31 15:26 UTC (permalink / raw)
  To: Mudit Sharma, Jonathan Cameron, Lars-Peter Clausen, Anshul Dalal,
	Javier Carrasco, Jean-Baptiste Maneyrol, Michael Hennerich,
	Cosmin Tanislav, Ramona Gradinariu, Antoniu Miclaus,
	Dan Robertson, Marcelo Schmitt, Matteo Martelli,
	Anand Ashok Dumbre, Michal Simek, Mariel Tinaco, Jagath Jog J,
	Lorenzo Bianconi, Subhajit Ghosh, Kevin Tsai, Linus Walleij,
	Benson Leung, Guenter Roeck
  Cc: linux-iio, linux-kernel, linux-arm-kernel, chrome-platform,
	Julien Stephan

iio_ev_state_store is actually using kstrtobool to check user
input, then gives the converted boolean value to the write_event_config
callback.

Remove useless code in write_event_config callback.

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
---
 drivers/iio/proximity/irsd200.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/iio/proximity/irsd200.c b/drivers/iio/proximity/irsd200.c
index 6e96b764fed8b577d71c3146210679b0b61d4c38..fb0691da99ee621e19013a64d122f097e793efd9 100644
--- a/drivers/iio/proximity/irsd200.c
+++ b/drivers/iio/proximity/irsd200.c
@@ -662,7 +662,7 @@ static int irsd200_write_event_config(struct iio_dev *indio_dev,
 			return ret;
 
 		return regmap_field_write(
-			data->regfields[IRS_REGF_INTR_COUNT_THR_OR], !!state);
+			data->regfields[IRS_REGF_INTR_COUNT_THR_OR], state);
 	default:
 		return -EINVAL;
 	}

-- 
2.47.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH v2 05/15] iio: proximity: sx9500: simplify code in write_event_config callback
  2024-10-31 15:26 [PATCH v2 00/15] iio: fix write_event_config signature Julien Stephan
                   ` (3 preceding siblings ...)
  2024-10-31 15:26 ` [PATCH v2 04/15] iio: proximity: irsd200: " Julien Stephan
@ 2024-10-31 15:27 ` Julien Stephan
  2024-11-01 15:36   ` Jonathan Cameron
  2024-10-31 15:27 ` [PATCH v2 06/15] iio: light: adux1020: write_event_config: use local variable for interrupt value Julien Stephan
                   ` (9 subsequent siblings)
  14 siblings, 1 reply; 36+ messages in thread
From: Julien Stephan @ 2024-10-31 15:27 UTC (permalink / raw)
  To: Mudit Sharma, Jonathan Cameron, Lars-Peter Clausen, Anshul Dalal,
	Javier Carrasco, Jean-Baptiste Maneyrol, Michael Hennerich,
	Cosmin Tanislav, Ramona Gradinariu, Antoniu Miclaus,
	Dan Robertson, Marcelo Schmitt, Matteo Martelli,
	Anand Ashok Dumbre, Michal Simek, Mariel Tinaco, Jagath Jog J,
	Lorenzo Bianconi, Subhajit Ghosh, Kevin Tsai, Linus Walleij,
	Benson Leung, Guenter Roeck
  Cc: linux-iio, linux-kernel, linux-arm-kernel, chrome-platform,
	Julien Stephan

iio_ev_state_store is actually using kstrtobool to check user
input, then gives the converted boolean value to the write_event_config
callback.

Remove useless code in write_event_config callback.

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
---
 drivers/iio/proximity/sx9500.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/iio/proximity/sx9500.c b/drivers/iio/proximity/sx9500.c
index 3f4eace05cfc6a4679fe82854dc059aa4a710d6d..e3da709424d5b2bd4e746df7adc4a4969e62f2a6 100644
--- a/drivers/iio/proximity/sx9500.c
+++ b/drivers/iio/proximity/sx9500.c
@@ -551,7 +551,7 @@ static int sx9500_write_event_config(struct iio_dev *indio_dev,
 
 	mutex_lock(&data->mutex);
 
-	if (state == 1) {
+	if (state) {
 		ret = sx9500_inc_chan_users(data, chan->channel);
 		if (ret < 0)
 			goto out_unlock;
@@ -571,7 +571,7 @@ static int sx9500_write_event_config(struct iio_dev *indio_dev,
 	goto out_unlock;
 
 out_undo_chan:
-	if (state == 1)
+	if (state)
 		sx9500_dec_chan_users(data, chan->channel);
 	else
 		sx9500_inc_chan_users(data, chan->channel);

-- 
2.47.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH v2 06/15] iio: light: adux1020: write_event_config: use local variable for interrupt value
  2024-10-31 15:26 [PATCH v2 00/15] iio: fix write_event_config signature Julien Stephan
                   ` (4 preceding siblings ...)
  2024-10-31 15:27 ` [PATCH v2 05/15] iio: proximity: sx9500: " Julien Stephan
@ 2024-10-31 15:27 ` Julien Stephan
  2024-10-31 16:27   ` David Lechner
  2024-10-31 15:27 ` [PATCH v2 07/15] iio: fix write_event_config signature Julien Stephan
                   ` (8 subsequent siblings)
  14 siblings, 1 reply; 36+ messages in thread
From: Julien Stephan @ 2024-10-31 15:27 UTC (permalink / raw)
  To: Mudit Sharma, Jonathan Cameron, Lars-Peter Clausen, Anshul Dalal,
	Javier Carrasco, Jean-Baptiste Maneyrol, Michael Hennerich,
	Cosmin Tanislav, Ramona Gradinariu, Antoniu Miclaus,
	Dan Robertson, Marcelo Schmitt, Matteo Martelli,
	Anand Ashok Dumbre, Michal Simek, Mariel Tinaco, Jagath Jog J,
	Lorenzo Bianconi, Subhajit Ghosh, Kevin Tsai, Linus Walleij,
	Benson Leung, Guenter Roeck
  Cc: linux-iio, linux-kernel, linux-arm-kernel, chrome-platform,
	Julien Stephan

state parameter is currently an int, but it is actually a boolean.
iio_ev_state_store is actually using kstrtobool to check user input,
then gives the converted boolean value to write_event_config.  The code
in adux1020_write_event_config re-uses state parameter to store an
integer value. To prepare for updating the write_event_config signature
to use a boolean for state, introduce a new local int variable.

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
---
 drivers/iio/light/adux1020.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/iio/light/adux1020.c b/drivers/iio/light/adux1020.c
index 2e0170be077aef9aa194fab51afbb33aec02e513..db57d84da616b91add8c5d1aba08a73ce18c367e 100644
--- a/drivers/iio/light/adux1020.c
+++ b/drivers/iio/light/adux1020.c
@@ -505,7 +505,7 @@ static int adux1020_write_event_config(struct iio_dev *indio_dev,
 				       enum iio_event_direction dir, int state)
 {
 	struct adux1020_data *data = iio_priv(indio_dev);
-	int ret, mask;
+	int ret, mask, val;
 
 	mutex_lock(&data->lock);
 
@@ -526,12 +526,12 @@ static int adux1020_write_event_config(struct iio_dev *indio_dev,
 			mask = ADUX1020_PROX_OFF1_INT;
 
 		if (state)
-			state = 0;
+			val = 0;
 		else
-			state = mask;
+			val = mask;
 
 		ret = regmap_update_bits(data->regmap, ADUX1020_REG_INT_MASK,
-					 mask, state);
+					 mask, val);
 		if (ret < 0)
 			goto fail;
 

-- 
2.47.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH v2 07/15] iio: fix write_event_config signature
  2024-10-31 15:26 [PATCH v2 00/15] iio: fix write_event_config signature Julien Stephan
                   ` (5 preceding siblings ...)
  2024-10-31 15:27 ` [PATCH v2 06/15] iio: light: adux1020: write_event_config: use local variable for interrupt value Julien Stephan
@ 2024-10-31 15:27 ` Julien Stephan
  2024-11-01 16:32   ` Jonathan Cameron
  2024-10-31 15:27 ` [PATCH v2 08/15] iio: accel: mma9551: use bool for event state Julien Stephan
                   ` (7 subsequent siblings)
  14 siblings, 1 reply; 36+ messages in thread
From: Julien Stephan @ 2024-10-31 15:27 UTC (permalink / raw)
  To: Mudit Sharma, Jonathan Cameron, Lars-Peter Clausen, Anshul Dalal,
	Javier Carrasco, Jean-Baptiste Maneyrol, Michael Hennerich,
	Cosmin Tanislav, Ramona Gradinariu, Antoniu Miclaus,
	Dan Robertson, Marcelo Schmitt, Matteo Martelli,
	Anand Ashok Dumbre, Michal Simek, Mariel Tinaco, Jagath Jog J,
	Lorenzo Bianconi, Subhajit Ghosh, Kevin Tsai, Linus Walleij,
	Benson Leung, Guenter Roeck
  Cc: linux-iio, linux-kernel, linux-arm-kernel, chrome-platform,
	Julien Stephan, Julia Lawall

write_event_config callback use an int for state, but it is actually a
boolean. iio_ev_state_store is actually using kstrtobool to check user
input, then gives the converted boolean value to write_event_config.

Fix signature and update all iio drivers to use the new signature.

This patch has been partially written using coccinelle with the
following script:

$ cat iio-bool.cocci
// Options: --all-includes

virtual patch

@c1@
identifier iioinfo;
identifier wecfunc;
@@
 static const struct iio_info iioinfo = {
        ...,
        .write_event_config =
(
 wecfunc
|
 &wecfunc
),
        ...,
 };

@@
identifier c1.wecfunc;
identifier indio_dev, chan, type, dir, state;
@@
 int wecfunc(struct iio_dev *indio_dev, const struct iio_chan_spec *chan, enum iio_event_type type, enum iio_event_direction dir,
-int
+bool
 state) {
  ...
 }

make coccicheck MODE=patch COCCI=iio-bool.cocci M=drivers/iio

Unfortunately, this script didn't match all files:
* all write_event_config callbacks using iio_device_claim_direct_scoped
  were not detected and not patched.
* all files that do not assign and declare the write_event_config
  callback in the same file.

iio.h was also manually updated.

The patch was build tested using allmodconfig config.

cc: Julia Lawall <julia.lawall@inria.fr>
Signed-off-by: Julien Stephan <jstephan@baylibre.com>
---
 drivers/iio/accel/adxl367.c                    | 2 +-
 drivers/iio/accel/adxl372.c                    | 2 +-
 drivers/iio/accel/adxl380.c                    | 2 +-
 drivers/iio/accel/bma400_core.c                | 2 +-
 drivers/iio/accel/bmc150-accel-core.c          | 2 +-
 drivers/iio/accel/fxls8962af-core.c            | 2 +-
 drivers/iio/accel/kxcjk-1013.c                 | 2 +-
 drivers/iio/accel/mma8452.c                    | 2 +-
 drivers/iio/accel/mma9551.c                    | 2 +-
 drivers/iio/accel/mma9553.c                    | 3 ++-
 drivers/iio/accel/sca3000.c                    | 2 +-
 drivers/iio/adc/ad7091r-base.c                 | 3 ++-
 drivers/iio/adc/ad7291.c                       | 2 +-
 drivers/iio/adc/ad799x.c                       | 2 +-
 drivers/iio/adc/hi8435.c                       | 2 +-
 drivers/iio/adc/max1363.c                      | 2 +-
 drivers/iio/adc/pac1921.c                      | 3 ++-
 drivers/iio/adc/palmas_gpadc.c                 | 2 +-
 drivers/iio/adc/ti-ads1015.c                   | 2 +-
 drivers/iio/adc/xilinx-ams.c                   | 2 +-
 drivers/iio/adc/xilinx-xadc-events.c           | 2 +-
 drivers/iio/adc/xilinx-xadc.h                  | 2 +-
 drivers/iio/cdc/ad7150.c                       | 2 +-
 drivers/iio/dac/ad5421.c                       | 2 +-
 drivers/iio/dac/ad8460.c                       | 2 +-
 drivers/iio/dummy/iio_simple_dummy.h           | 2 +-
 drivers/iio/dummy/iio_simple_dummy_events.c    | 2 +-
 drivers/iio/gyro/bmg160_core.c                 | 2 +-
 drivers/iio/imu/bmi323/bmi323_core.c           | 2 +-
 drivers/iio/imu/inv_mpu6050/inv_mpu_core.c     | 2 +-
 drivers/iio/imu/kmx61.c                        | 2 +-
 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c   | 2 +-
 drivers/iio/light/adux1020.c                   | 3 ++-
 drivers/iio/light/apds9300.c                   | 2 +-
 drivers/iio/light/apds9306.c                   | 2 +-
 drivers/iio/light/apds9960.c                   | 2 +-
 drivers/iio/light/bh1745.c                     | 2 +-
 drivers/iio/light/cm36651.c                    | 2 +-
 drivers/iio/light/gp2ap002.c                   | 2 +-
 drivers/iio/light/gp2ap020a00f.c               | 2 +-
 drivers/iio/light/iqs621-als.c                 | 2 +-
 drivers/iio/light/ltr390.c                     | 2 +-
 drivers/iio/light/ltr501.c                     | 2 +-
 drivers/iio/light/max44009.c                   | 2 +-
 drivers/iio/light/opt3001.c                    | 2 +-
 drivers/iio/light/stk3310.c                    | 2 +-
 drivers/iio/light/tcs3472.c                    | 2 +-
 drivers/iio/light/tsl2563.c                    | 2 +-
 drivers/iio/light/tsl2591.c                    | 2 +-
 drivers/iio/light/tsl2772.c                    | 2 +-
 drivers/iio/light/us5182d.c                    | 2 +-
 drivers/iio/light/vcnl4000.c                   | 5 +++--
 drivers/iio/light/veml6030.c                   | 2 +-
 drivers/iio/position/iqs624-pos.c              | 2 +-
 drivers/iio/proximity/aw96103.c                | 2 +-
 drivers/iio/proximity/cros_ec_mkbp_proximity.c | 2 +-
 drivers/iio/proximity/hx9023s.c                | 2 +-
 drivers/iio/proximity/irsd200.c                | 3 ++-
 drivers/iio/proximity/sx9500.c                 | 2 +-
 drivers/iio/proximity/sx_common.c              | 2 +-
 drivers/iio/proximity/sx_common.h              | 2 +-
 drivers/iio/proximity/vcnl3020.c               | 2 +-
 drivers/iio/temperature/mcp9600.c              | 2 +-
 drivers/iio/temperature/tmp007.c               | 2 +-
 include/linux/iio/iio.h                        | 2 +-
 65 files changed, 72 insertions(+), 66 deletions(-)

diff --git a/drivers/iio/accel/adxl367.c b/drivers/iio/accel/adxl367.c
index e790a66d86c79f7de9650ea47f11c8990825fd42..705375f3b56e653631491a8316a56d0dcb171e89 100644
--- a/drivers/iio/accel/adxl367.c
+++ b/drivers/iio/accel/adxl367.c
@@ -1073,7 +1073,7 @@ static int adxl367_write_event_config(struct iio_dev *indio_dev,
 				      const struct iio_chan_spec *chan,
 				      enum iio_event_type type,
 				      enum iio_event_direction dir,
-				      int state)
+				      bool state)
 {
 	enum adxl367_activity_type act;
 
diff --git a/drivers/iio/accel/adxl372.c b/drivers/iio/accel/adxl372.c
index ef8dd557877bd44570e84579b1af89e6b02cc523..5b9eb364760a281e8ef0ef15124cc1c8e8b0f58c 100644
--- a/drivers/iio/accel/adxl372.c
+++ b/drivers/iio/accel/adxl372.c
@@ -940,7 +940,7 @@ static int adxl372_read_event_config(struct iio_dev *indio_dev, const struct iio
 
 static int adxl372_write_event_config(struct iio_dev *indio_dev, const struct iio_chan_spec *chan,
 				      enum iio_event_type type, enum iio_event_direction dir,
-				      int state)
+				      bool state)
 {
 	struct adxl372_state *st = iio_priv(indio_dev);
 
diff --git a/drivers/iio/accel/adxl380.c b/drivers/iio/accel/adxl380.c
index 9f6f0a45efce7981736c3a8f005f4fef83f05cfd..5d2bda1a6a783c3f5bf6dfa6830bc80cc7055e01 100644
--- a/drivers/iio/accel/adxl380.c
+++ b/drivers/iio/accel/adxl380.c
@@ -1386,7 +1386,7 @@ static int adxl380_write_event_config(struct iio_dev *indio_dev,
 				      const struct iio_chan_spec *chan,
 				      enum iio_event_type type,
 				      enum iio_event_direction dir,
-				      int state)
+				      bool state)
 {
 	struct adxl380_state *st = iio_priv(indio_dev);
 	enum adxl380_axis axis;
diff --git a/drivers/iio/accel/bma400_core.c b/drivers/iio/accel/bma400_core.c
index 0bf5f321cfe79147df01fa674de779e506818b46..906d2577be2d64220046ec56ef675ddafb9a50ab 100644
--- a/drivers/iio/accel/bma400_core.c
+++ b/drivers/iio/accel/bma400_core.c
@@ -1293,7 +1293,7 @@ static int bma400_disable_adv_interrupt(struct bma400_data *data)
 static int bma400_write_event_config(struct iio_dev *indio_dev,
 				     const struct iio_chan_spec *chan,
 				     enum iio_event_type type,
-				     enum iio_event_direction dir, int state)
+				     enum iio_event_direction dir, bool state)
 {
 	struct bma400_data *data = iio_priv(indio_dev);
 	int ret;
diff --git a/drivers/iio/accel/bmc150-accel-core.c b/drivers/iio/accel/bmc150-accel-core.c
index 0f32c1e92b4dc121bb85516acef4941b0421f100..158579350d596e11ab36d9ea4692e5837cca482e 100644
--- a/drivers/iio/accel/bmc150-accel-core.c
+++ b/drivers/iio/accel/bmc150-accel-core.c
@@ -804,7 +804,7 @@ static int bmc150_accel_write_event_config(struct iio_dev *indio_dev,
 					   const struct iio_chan_spec *chan,
 					   enum iio_event_type type,
 					   enum iio_event_direction dir,
-					   int state)
+					   bool state)
 {
 	struct bmc150_accel_data *data = iio_priv(indio_dev);
 	int ret;
diff --git a/drivers/iio/accel/fxls8962af-core.c b/drivers/iio/accel/fxls8962af-core.c
index ab427f3461dbbef535c2ec2cf2982202ca97bb82..f07fba17048e7b5c1958807b14d4bcb3ff87e26d 100644
--- a/drivers/iio/accel/fxls8962af-core.c
+++ b/drivers/iio/accel/fxls8962af-core.c
@@ -617,7 +617,7 @@ static int
 fxls8962af_write_event_config(struct iio_dev *indio_dev,
 			      const struct iio_chan_spec *chan,
 			      enum iio_event_type type,
-			      enum iio_event_direction dir, int state)
+			      enum iio_event_direction dir, bool state)
 {
 	struct fxls8962af_data *data = iio_priv(indio_dev);
 	u8 enable_event, enable_bits;
diff --git a/drivers/iio/accel/kxcjk-1013.c b/drivers/iio/accel/kxcjk-1013.c
index a6621cd69707bfdf6dfe0b1bf87e0829d2c7c545..6ce84b2dd720b719c0bd9baa653af54539e93ac2 100644
--- a/drivers/iio/accel/kxcjk-1013.c
+++ b/drivers/iio/accel/kxcjk-1013.c
@@ -1093,7 +1093,7 @@ static int kxcjk1013_write_event_config(struct iio_dev *indio_dev,
 					   const struct iio_chan_spec *chan,
 					   enum iio_event_type type,
 					   enum iio_event_direction dir,
-					   int state)
+					   bool state)
 {
 	struct kxcjk1013_data *data = iio_priv(indio_dev);
 	int ret;
diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c
index de4525b30edcab8c786708df98f072d569c81f2e..962d289065ab7bb3da5ae102cb5ee2cb96662af5 100644
--- a/drivers/iio/accel/mma8452.c
+++ b/drivers/iio/accel/mma8452.c
@@ -974,7 +974,7 @@ static int mma8452_write_event_config(struct iio_dev *indio_dev,
 				      const struct iio_chan_spec *chan,
 				      enum iio_event_type type,
 				      enum iio_event_direction dir,
-				      int state)
+				      bool state)
 {
 	struct mma8452_data *data = iio_priv(indio_dev);
 	int val, ret;
diff --git a/drivers/iio/accel/mma9551.c b/drivers/iio/accel/mma9551.c
index a5d20d8d08b8ee54eed0849dad433c00a055ab2c..605022f5239a6412827f4ba059aa18d490908720 100644
--- a/drivers/iio/accel/mma9551.c
+++ b/drivers/iio/accel/mma9551.c
@@ -225,7 +225,7 @@ static int mma9551_write_event_config(struct iio_dev *indio_dev,
 				      const struct iio_chan_spec *chan,
 				      enum iio_event_type type,
 				      enum iio_event_direction dir,
-				      int state)
+				      bool state)
 {
 	struct mma9551_data *data = iio_priv(indio_dev);
 	int ret;
diff --git a/drivers/iio/accel/mma9553.c b/drivers/iio/accel/mma9553.c
index 1ea6aa00741238a8512294cdc8147a53853e5277..43ba04c606a40debb3befe1df92bd4cc7b7777d3 100644
--- a/drivers/iio/accel/mma9553.c
+++ b/drivers/iio/accel/mma9553.c
@@ -725,7 +725,8 @@ static int mma9553_read_event_config(struct iio_dev *indio_dev,
 static int mma9553_write_event_config(struct iio_dev *indio_dev,
 				      const struct iio_chan_spec *chan,
 				      enum iio_event_type type,
-				      enum iio_event_direction dir, int state)
+				      enum iio_event_direction dir,
+				      bool state)
 {
 	struct mma9553_data *data = iio_priv(indio_dev);
 	struct mma9553_event *event;
diff --git a/drivers/iio/accel/sca3000.c b/drivers/iio/accel/sca3000.c
index 87c54e41f6ccd2f9311653b757b2d794df1dd5d4..36cbfcbba04d6920ba68bebd70d21bc3898a044d 100644
--- a/drivers/iio/accel/sca3000.c
+++ b/drivers/iio/accel/sca3000.c
@@ -1253,7 +1253,7 @@ static int sca3000_write_event_config(struct iio_dev *indio_dev,
 				      const struct iio_chan_spec *chan,
 				      enum iio_event_type type,
 				      enum iio_event_direction dir,
-				      int state)
+				      bool state)
 {
 	struct sca3000_state *st = iio_priv(indio_dev);
 	int ret;
diff --git a/drivers/iio/adc/ad7091r-base.c b/drivers/iio/adc/ad7091r-base.c
index d6876259ad14499df0983b4744834d66aa789f27..eb0a059b4b0e9e8af52e9433032318d853a76c33 100644
--- a/drivers/iio/adc/ad7091r-base.c
+++ b/drivers/iio/adc/ad7091r-base.c
@@ -150,7 +150,8 @@ static int ad7091r_read_event_config(struct iio_dev *indio_dev,
 static int ad7091r_write_event_config(struct iio_dev *indio_dev,
 				      const struct iio_chan_spec *chan,
 				      enum iio_event_type type,
-				      enum iio_event_direction dir, int state)
+				      enum iio_event_direction dir,
+				      bool state)
 {
 	struct ad7091r_state *st = iio_priv(indio_dev);
 
diff --git a/drivers/iio/adc/ad7291.c b/drivers/iio/adc/ad7291.c
index 4c7f887adbbf2f2c857288b19ce8058ee5ebdffb..60e12faa32070183c64a2037c968177cb903cc11 100644
--- a/drivers/iio/adc/ad7291.c
+++ b/drivers/iio/adc/ad7291.c
@@ -269,7 +269,7 @@ static int ad7291_write_event_config(struct iio_dev *indio_dev,
 				     const struct iio_chan_spec *chan,
 				     enum iio_event_type type,
 				     enum iio_event_direction dir,
-				     int state)
+				     bool state)
 {
 	int ret = 0;
 	struct ad7291_chip_info *chip = iio_priv(indio_dev);
diff --git a/drivers/iio/adc/ad799x.c b/drivers/iio/adc/ad799x.c
index 0f107e3fc2c85575e6820f995949a5345e9d69d3..aa44b4e2542b2679c6b5fbe7346e3e9dc17721af 100644
--- a/drivers/iio/adc/ad799x.c
+++ b/drivers/iio/adc/ad799x.c
@@ -406,7 +406,7 @@ static int ad799x_write_event_config(struct iio_dev *indio_dev,
 				     const struct iio_chan_spec *chan,
 				     enum iio_event_type type,
 				     enum iio_event_direction dir,
-				     int state)
+				     bool state)
 {
 	struct ad799x_state *st = iio_priv(indio_dev);
 	int ret;
diff --git a/drivers/iio/adc/hi8435.c b/drivers/iio/adc/hi8435.c
index fb635a756440300432b0bbcf1fd9ebce2e9ab92d..689e34f069877ec525c5f9ee7258d5140d4bba70 100644
--- a/drivers/iio/adc/hi8435.c
+++ b/drivers/iio/adc/hi8435.c
@@ -132,7 +132,7 @@ static int hi8435_read_event_config(struct iio_dev *idev,
 static int hi8435_write_event_config(struct iio_dev *idev,
 				     const struct iio_chan_spec *chan,
 				     enum iio_event_type type,
-				     enum iio_event_direction dir, int state)
+				     enum iio_event_direction dir, bool state)
 {
 	struct hi8435_priv *priv = iio_priv(idev);
 	int ret;
diff --git a/drivers/iio/adc/max1363.c b/drivers/iio/adc/max1363.c
index 8da2d8d7a9c677c6eb5c4b2903a7954c0105707d..9a0baea08ab6162b024932f3f65c8a68d156672d 100644
--- a/drivers/iio/adc/max1363.c
+++ b/drivers/iio/adc/max1363.c
@@ -944,7 +944,7 @@ static inline int __max1363_check_event_mask(int thismask, int checkmask)
 
 static int max1363_write_event_config(struct iio_dev *indio_dev,
 	const struct iio_chan_spec *chan, enum iio_event_type type,
-	enum iio_event_direction dir, int state)
+	enum iio_event_direction dir, bool state)
 {
 	struct max1363_state *st = iio_priv(indio_dev);
 
diff --git a/drivers/iio/adc/pac1921.c b/drivers/iio/adc/pac1921.c
index f6f8f9122a78d1b5e63d8184203eb3dae55eb560..66f206b9465e5d390aa2ad63d7d72d86f457f202 100644
--- a/drivers/iio/adc/pac1921.c
+++ b/drivers/iio/adc/pac1921.c
@@ -740,7 +740,8 @@ static int pac1921_read_event_config(struct iio_dev *indio_dev,
 static int pac1921_write_event_config(struct iio_dev *indio_dev,
 				      const struct iio_chan_spec *chan,
 				      enum iio_event_type type,
-				      enum iio_event_direction dir, int state)
+				      enum iio_event_direction dir,
+				      bool state)
 {
 	struct pac1921_priv *priv = iio_priv(indio_dev);
 	u8 ovf_bit;
diff --git a/drivers/iio/adc/palmas_gpadc.c b/drivers/iio/adc/palmas_gpadc.c
index 67d567ee21b439e3f296c239c68d8ed6f1723b59..d283ee8fb1d2f219674ece7faa5492503671ac94 100644
--- a/drivers/iio/adc/palmas_gpadc.c
+++ b/drivers/iio/adc/palmas_gpadc.c
@@ -676,7 +676,7 @@ static int palmas_gpadc_write_event_config(struct iio_dev *indio_dev,
 					   const struct iio_chan_spec *chan,
 					   enum iio_event_type type,
 					   enum iio_event_direction dir,
-					   int state)
+					   bool state)
 {
 	struct palmas_gpadc *adc = iio_priv(indio_dev);
 	int adc_chan = chan->channel;
diff --git a/drivers/iio/adc/ti-ads1015.c b/drivers/iio/adc/ti-ads1015.c
index 052d2124b21570e0b90fd4aa4048adcc921301ef..47fe8e16aee42d375a74f9e97d4220542b04566d 100644
--- a/drivers/iio/adc/ti-ads1015.c
+++ b/drivers/iio/adc/ti-ads1015.c
@@ -806,7 +806,7 @@ static int ads1015_disable_event_config(struct ads1015_data *data,
 
 static int ads1015_write_event_config(struct iio_dev *indio_dev,
 	const struct iio_chan_spec *chan, enum iio_event_type type,
-	enum iio_event_direction dir, int state)
+	enum iio_event_direction dir, bool state)
 {
 	struct ads1015_data *data = iio_priv(indio_dev);
 	int ret;
diff --git a/drivers/iio/adc/xilinx-ams.c b/drivers/iio/adc/xilinx-ams.c
index ebc583b07e0c00bd08c3219f595edd8df26a8378..76dd0343f5f76a6b1a8882e41d6a7f333c3a36e4 100644
--- a/drivers/iio/adc/xilinx-ams.c
+++ b/drivers/iio/adc/xilinx-ams.c
@@ -905,7 +905,7 @@ static int ams_write_event_config(struct iio_dev *indio_dev,
 				  const struct iio_chan_spec *chan,
 				  enum iio_event_type type,
 				  enum iio_event_direction dir,
-				  int state)
+				  bool state)
 {
 	struct ams *ams = iio_priv(indio_dev);
 	unsigned int alarm;
diff --git a/drivers/iio/adc/xilinx-xadc-events.c b/drivers/iio/adc/xilinx-xadc-events.c
index 90f62377c34d97fcf3695103edc4d8e9a17d0a83..c188d3dcab48fea007ac065397bb17f952ca09db 100644
--- a/drivers/iio/adc/xilinx-xadc-events.c
+++ b/drivers/iio/adc/xilinx-xadc-events.c
@@ -121,7 +121,7 @@ int xadc_read_event_config(struct iio_dev *indio_dev,
 
 int xadc_write_event_config(struct iio_dev *indio_dev,
 	const struct iio_chan_spec *chan, enum iio_event_type type,
-	enum iio_event_direction dir, int state)
+	enum iio_event_direction dir, bool state)
 {
 	unsigned int alarm = xadc_get_alarm_mask(chan);
 	struct xadc *xadc = iio_priv(indio_dev);
diff --git a/drivers/iio/adc/xilinx-xadc.h b/drivers/iio/adc/xilinx-xadc.h
index 3036f4d613ff5d44018c098781576d3f71fd5b49..b4d9d468311723fa79cfd7f10781f788dbf9c9db 100644
--- a/drivers/iio/adc/xilinx-xadc.h
+++ b/drivers/iio/adc/xilinx-xadc.h
@@ -25,7 +25,7 @@ int xadc_read_event_config(struct iio_dev *indio_dev,
 	enum iio_event_direction dir);
 int xadc_write_event_config(struct iio_dev *indio_dev,
 	const struct iio_chan_spec *chan, enum iio_event_type type,
-	enum iio_event_direction dir, int state);
+	enum iio_event_direction dir, bool state);
 int xadc_read_event_value(struct iio_dev *indio_dev,
 	const struct iio_chan_spec *chan, enum iio_event_type type,
 	enum iio_event_direction dir, enum iio_event_info info,
diff --git a/drivers/iio/cdc/ad7150.c b/drivers/iio/cdc/ad7150.c
index 4c03b9e834b88d6eafabb63999a1ed2c1720118f..e64a41bae32c67e43fc9021c186170c4bacb2ae3 100644
--- a/drivers/iio/cdc/ad7150.c
+++ b/drivers/iio/cdc/ad7150.c
@@ -232,7 +232,7 @@ static int ad7150_write_event_params(struct iio_dev *indio_dev,
 static int ad7150_write_event_config(struct iio_dev *indio_dev,
 				     const struct iio_chan_spec *chan,
 				     enum iio_event_type type,
-				     enum iio_event_direction dir, int state)
+				     enum iio_event_direction dir, bool state)
 {
 	struct ad7150_chip_info *chip = iio_priv(indio_dev);
 	int ret = 0;
diff --git a/drivers/iio/dac/ad5421.c b/drivers/iio/dac/ad5421.c
index 7644acfd879e046ebea39e16a5566f58e9ceefed..1462ee640b16863e779bb550fa64445b5c8bd72c 100644
--- a/drivers/iio/dac/ad5421.c
+++ b/drivers/iio/dac/ad5421.c
@@ -384,7 +384,7 @@ static int ad5421_write_raw(struct iio_dev *indio_dev,
 
 static int ad5421_write_event_config(struct iio_dev *indio_dev,
 	const struct iio_chan_spec *chan, enum iio_event_type type,
-	enum iio_event_direction dir, int state)
+	enum iio_event_direction dir, bool state)
 {
 	struct ad5421_state *st = iio_priv(indio_dev);
 	unsigned int mask;
diff --git a/drivers/iio/dac/ad8460.c b/drivers/iio/dac/ad8460.c
index 7470d97825e0a6b0124c2a3bac3d5709dcded534..f235394589dfb6ae575e37819dfd33dc35f77f23 100644
--- a/drivers/iio/dac/ad8460.c
+++ b/drivers/iio/dac/ad8460.c
@@ -573,7 +573,7 @@ static int ad8460_read_event_value(struct iio_dev *indio_dev,
 static int ad8460_write_event_config(struct iio_dev *indio_dev,
 				     const struct iio_chan_spec *chan,
 				     enum iio_event_type type,
-				     enum iio_event_direction dir, int val)
+				     enum iio_event_direction dir, bool val)
 {
 	struct ad8460_state *state = iio_priv(indio_dev);
 	int fault;
diff --git a/drivers/iio/dummy/iio_simple_dummy.h b/drivers/iio/dummy/iio_simple_dummy.h
index a91622ac54e06e037502fbc956f0bd7c35de7509..8246f25dbad04f2bb612177631ebc1bedfc1f1e9 100644
--- a/drivers/iio/dummy/iio_simple_dummy.h
+++ b/drivers/iio/dummy/iio_simple_dummy.h
@@ -60,7 +60,7 @@ int iio_simple_dummy_write_event_config(struct iio_dev *indio_dev,
 					const struct iio_chan_spec *chan,
 					enum iio_event_type type,
 					enum iio_event_direction dir,
-					int state);
+					bool state);
 
 int iio_simple_dummy_read_event_value(struct iio_dev *indio_dev,
 				      const struct iio_chan_spec *chan,
diff --git a/drivers/iio/dummy/iio_simple_dummy_events.c b/drivers/iio/dummy/iio_simple_dummy_events.c
index 63a2b844be50834e232f653bbb893dee29171c4c..c7f2d3a4d60b2602bd180feca7c141b2dd6e35a7 100644
--- a/drivers/iio/dummy/iio_simple_dummy_events.c
+++ b/drivers/iio/dummy/iio_simple_dummy_events.c
@@ -53,7 +53,7 @@ int iio_simple_dummy_write_event_config(struct iio_dev *indio_dev,
 					const struct iio_chan_spec *chan,
 					enum iio_event_type type,
 					enum iio_event_direction dir,
-					int state)
+					bool state)
 {
 	struct iio_dummy_state *st = iio_priv(indio_dev);
 
diff --git a/drivers/iio/gyro/bmg160_core.c b/drivers/iio/gyro/bmg160_core.c
index bb235697262bc363f4117aee7eb987318806fa63..ba877d067afb7a7bd0d350edd8f2be86fe673c69 100644
--- a/drivers/iio/gyro/bmg160_core.c
+++ b/drivers/iio/gyro/bmg160_core.c
@@ -748,7 +748,7 @@ static int bmg160_write_event_config(struct iio_dev *indio_dev,
 				     const struct iio_chan_spec *chan,
 				     enum iio_event_type type,
 				     enum iio_event_direction dir,
-				     int state)
+				     bool state)
 {
 	struct bmg160_data *data = iio_priv(indio_dev);
 	int ret;
diff --git a/drivers/iio/imu/bmi323/bmi323_core.c b/drivers/iio/imu/bmi323/bmi323_core.c
index 1e6c083ea5c1bbddb878f08cd4f4be725c0e319f..76a88e1ccc1d89988eb52d6b1be8da0f5005f0e6 100644
--- a/drivers/iio/imu/bmi323/bmi323_core.c
+++ b/drivers/iio/imu/bmi323/bmi323_core.c
@@ -785,7 +785,7 @@ static const struct attribute_group bmi323_event_attribute_group = {
 static int bmi323_write_event_config(struct iio_dev *indio_dev,
 				     const struct iio_chan_spec *chan,
 				     enum iio_event_type type,
-				     enum iio_event_direction dir, int state)
+				     enum iio_event_direction dir, bool state)
 {
 	struct bmi323_data *data = iio_priv(indio_dev);
 
diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
index 21ebf0f7e28fec302cbf8ab890fc53a3de6f36cd..40271352b02cf6e0acdfa7a8b2d50f384650a6c0 100644
--- a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
+++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
@@ -1173,7 +1173,7 @@ static int inv_mpu6050_write_event_config(struct iio_dev *indio_dev,
 					  const struct iio_chan_spec *chan,
 					  enum iio_event_type type,
 					  enum iio_event_direction dir,
-					  int state)
+					  bool state)
 {
 	struct inv_mpu6050_state *st = iio_priv(indio_dev);
 
diff --git a/drivers/iio/imu/kmx61.c b/drivers/iio/imu/kmx61.c
index 2af772775b68932db45f2b9a5d40dc8b1bb247b5..324c38764656ad74e2bbdc54824b4321db3c0b81 100644
--- a/drivers/iio/imu/kmx61.c
+++ b/drivers/iio/imu/kmx61.c
@@ -942,7 +942,7 @@ static int kmx61_write_event_config(struct iio_dev *indio_dev,
 				    const struct iio_chan_spec *chan,
 				    enum iio_event_type type,
 				    enum iio_event_direction dir,
-				    int state)
+				    bool state)
 {
 	struct kmx61_data *data = kmx61_get_data(indio_dev);
 	int ret = 0;
diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
index fb4c6c39ff2e157593f02513cc8e01cd7eea9bdf..caefa15e559b8808051ff1c7f82c3f36c947933c 100644
--- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
+++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
@@ -1959,7 +1959,7 @@ static int
 st_lsm6dsx_write_event_config(struct iio_dev *iio_dev,
 			      const struct iio_chan_spec *chan,
 			      enum iio_event_type type,
-			      enum iio_event_direction dir, int state)
+			      enum iio_event_direction dir, bool state)
 {
 	struct st_lsm6dsx_sensor *sensor = iio_priv(iio_dev);
 	struct st_lsm6dsx_hw *hw = sensor->hw;
diff --git a/drivers/iio/light/adux1020.c b/drivers/iio/light/adux1020.c
index db57d84da616b91add8c5d1aba08a73ce18c367e..32e58496cb10ae5578935302c08dbbbb46c5f79a 100644
--- a/drivers/iio/light/adux1020.c
+++ b/drivers/iio/light/adux1020.c
@@ -502,7 +502,8 @@ static int adux1020_write_raw(struct iio_dev *indio_dev,
 static int adux1020_write_event_config(struct iio_dev *indio_dev,
 				       const struct iio_chan_spec *chan,
 				       enum iio_event_type type,
-				       enum iio_event_direction dir, int state)
+				       enum iio_event_direction dir,
+				       bool state)
 {
 	struct adux1020_data *data = iio_priv(indio_dev);
 	int ret, mask, val;
diff --git a/drivers/iio/light/apds9300.c b/drivers/iio/light/apds9300.c
index 11f2ab4ca261813aff04b8c25d4595a531fb43cb..95861b2a5b2d94011d894959289c5c4f06cc1efe 100644
--- a/drivers/iio/light/apds9300.c
+++ b/drivers/iio/light/apds9300.c
@@ -321,7 +321,7 @@ static int apds9300_read_interrupt_config(struct iio_dev *indio_dev,
 
 static int apds9300_write_interrupt_config(struct iio_dev *indio_dev,
 		const struct iio_chan_spec *chan, enum iio_event_type type,
-		enum iio_event_direction dir, int state)
+		enum iio_event_direction dir, bool state)
 {
 	struct apds9300_data *data = iio_priv(indio_dev);
 	int ret;
diff --git a/drivers/iio/light/apds9306.c b/drivers/iio/light/apds9306.c
index 079e02be1005210ddd30b384ffa1ff7feeb098d7..8adc74040db2bddf93fbb773e3519abcc726b9a6 100644
--- a/drivers/iio/light/apds9306.c
+++ b/drivers/iio/light/apds9306.c
@@ -1071,7 +1071,7 @@ static int apds9306_write_event_config(struct iio_dev *indio_dev,
 				       const struct iio_chan_spec *chan,
 				       enum iio_event_type type,
 				       enum iio_event_direction dir,
-				       int state)
+				       bool state)
 {
 	struct apds9306_data *data = iio_priv(indio_dev);
 	struct apds9306_regfields *rf = &data->rf;
diff --git a/drivers/iio/light/apds9960.c b/drivers/iio/light/apds9960.c
index 3a56eaae5a68f2891d061871c7013f0b5447bb47..a7f0cc99f236685900f89fbc48de3be0e9a40704 100644
--- a/drivers/iio/light/apds9960.c
+++ b/drivers/iio/light/apds9960.c
@@ -757,7 +757,7 @@ static int apds9960_write_event_config(struct iio_dev *indio_dev,
 				       const struct iio_chan_spec *chan,
 				       enum iio_event_type type,
 				       enum iio_event_direction dir,
-				       int state)
+				       bool state)
 {
 	struct apds9960_data *data = iio_priv(indio_dev);
 	int ret;
diff --git a/drivers/iio/light/bh1745.c b/drivers/iio/light/bh1745.c
index fc6bf062d4f510886f909509d8115f0cf892f3c4..23e9f16090ccdbb672fea741f3f4e361086f0360 100644
--- a/drivers/iio/light/bh1745.c
+++ b/drivers/iio/light/bh1745.c
@@ -638,7 +638,7 @@ static int bh1745_read_event_config(struct iio_dev *indio_dev,
 static int bh1745_write_event_config(struct iio_dev *indio_dev,
 				     const struct iio_chan_spec *chan,
 				     enum iio_event_type type,
-				     enum iio_event_direction dir, int state)
+				     enum iio_event_direction dir, bool state)
 {
 	struct bh1745_data *data = iio_priv(indio_dev);
 	int value;
diff --git a/drivers/iio/light/cm36651.c b/drivers/iio/light/cm36651.c
index a4a1505534c015e3146c00de3e38966ffd712a5b..ae3fc3299eec6c30149bbfcb638d5c0001c30ed9 100644
--- a/drivers/iio/light/cm36651.c
+++ b/drivers/iio/light/cm36651.c
@@ -529,7 +529,7 @@ static int cm36651_write_prox_event_config(struct iio_dev *indio_dev,
 					const struct iio_chan_spec *chan,
 					enum iio_event_type type,
 					enum iio_event_direction dir,
-					int state)
+					bool state)
 {
 	struct cm36651_data *cm36651 = iio_priv(indio_dev);
 	int cmd, ret;
diff --git a/drivers/iio/light/gp2ap002.c b/drivers/iio/light/gp2ap002.c
index f8b1d7dd6f5fc69da12cf37ad286112555e4919f..d56ee217fe538c8babb5df510932bd6e67c59ea6 100644
--- a/drivers/iio/light/gp2ap002.c
+++ b/drivers/iio/light/gp2ap002.c
@@ -340,7 +340,7 @@ static int gp2ap002_write_event_config(struct iio_dev *indio_dev,
 				       const struct iio_chan_spec *chan,
 				       enum iio_event_type type,
 				       enum iio_event_direction dir,
-				       int state)
+				       bool state)
 {
 	struct gp2ap002 *gp2ap002 = iio_priv(indio_dev);
 
diff --git a/drivers/iio/light/gp2ap020a00f.c b/drivers/iio/light/gp2ap020a00f.c
index 81e718cdeae32d60581cb490148f4f1c0bd695c7..1a352c88598e5d701256aa8659a7f9683bce56f9 100644
--- a/drivers/iio/light/gp2ap020a00f.c
+++ b/drivers/iio/light/gp2ap020a00f.c
@@ -1159,7 +1159,7 @@ static int gp2ap020a00f_write_event_config(struct iio_dev *indio_dev,
 					   const struct iio_chan_spec *chan,
 					   enum iio_event_type type,
 					   enum iio_event_direction dir,
-					   int state)
+					   bool state)
 {
 	struct gp2ap020a00f_data *data = iio_priv(indio_dev);
 	enum gp2ap020a00f_cmd cmd;
diff --git a/drivers/iio/light/iqs621-als.c b/drivers/iio/light/iqs621-als.c
index 6de33feada3a36f0656e9bdf5289560a49358b5a..b9f230210f0731b82139191366f2309f835c0b6d 100644
--- a/drivers/iio/light/iqs621-als.c
+++ b/drivers/iio/light/iqs621-als.c
@@ -271,7 +271,7 @@ static int iqs621_als_write_event_config(struct iio_dev *indio_dev,
 					 const struct iio_chan_spec *chan,
 					 enum iio_event_type type,
 					 enum iio_event_direction dir,
-					 int state)
+					 bool state)
 {
 	struct iqs621_als_private *iqs621_als = iio_priv(indio_dev);
 	struct iqs62x_core *iqs62x = iqs621_als->iqs62x;
diff --git a/drivers/iio/light/ltr390.c b/drivers/iio/light/ltr390.c
index 3bdffb6360bcbaab4df1a2d39c8ea3813b5d6bd3..df664f36090301e21d6e2f92035198e15e018712 100644
--- a/drivers/iio/light/ltr390.c
+++ b/drivers/iio/light/ltr390.c
@@ -553,7 +553,7 @@ static int ltr390_write_event_config(struct iio_dev *indio_dev,
 				const struct iio_chan_spec *chan,
 				enum iio_event_type type,
 				enum iio_event_direction dir,
-				int state)
+				bool state)
 {
 	struct ltr390_data *data = iio_priv(indio_dev);
 	int ret;
diff --git a/drivers/iio/light/ltr501.c b/drivers/iio/light/ltr501.c
index 7228611d4c59032d7b0e4f3e958cf24184de7f37..b92b5580c91cc7fce338a747630224687357372e 100644
--- a/drivers/iio/light/ltr501.c
+++ b/drivers/iio/light/ltr501.c
@@ -1077,7 +1077,7 @@ static int ltr501_read_event_config(struct iio_dev *indio_dev,
 static int ltr501_write_event_config(struct iio_dev *indio_dev,
 				     const struct iio_chan_spec *chan,
 				     enum iio_event_type type,
-				     enum iio_event_direction dir, int state)
+				     enum iio_event_direction dir, bool state)
 {
 	struct ltr501_data *data = iio_priv(indio_dev);
 	int ret;
diff --git a/drivers/iio/light/max44009.c b/drivers/iio/light/max44009.c
index 3b92362675dc96fd37272bb5c25c20717b8c25b0..8cd7f5664e5b1a13aceb3aaeac3f6eef14a1eaac 100644
--- a/drivers/iio/light/max44009.c
+++ b/drivers/iio/light/max44009.c
@@ -422,7 +422,7 @@ static int max44009_write_event_config(struct iio_dev *indio_dev,
 				       const struct iio_chan_spec *chan,
 				       enum iio_event_type type,
 				       enum iio_event_direction dir,
-				       int state)
+				       bool state)
 {
 	struct max44009_data *data = iio_priv(indio_dev);
 	int ret;
diff --git a/drivers/iio/light/opt3001.c b/drivers/iio/light/opt3001.c
index ff7fc0d4b08f9905bd6514d5f1c64b5923ec86cb..65b295877b41588d40234ca7681bfee291e937c2 100644
--- a/drivers/iio/light/opt3001.c
+++ b/drivers/iio/light/opt3001.c
@@ -634,7 +634,7 @@ static int opt3001_read_event_config(struct iio_dev *iio,
 
 static int opt3001_write_event_config(struct iio_dev *iio,
 		const struct iio_chan_spec *chan, enum iio_event_type type,
-		enum iio_event_direction dir, int state)
+		enum iio_event_direction dir, bool state)
 {
 	struct opt3001 *opt = iio_priv(iio);
 	int ret;
diff --git a/drivers/iio/light/stk3310.c b/drivers/iio/light/stk3310.c
index c6f950af5afa0f77a617bd2baf0a08eef5ec26f0..b81cc44db43c377ad8a8cc61c4430decb187181d 100644
--- a/drivers/iio/light/stk3310.c
+++ b/drivers/iio/light/stk3310.c
@@ -324,7 +324,7 @@ static int stk3310_write_event_config(struct iio_dev *indio_dev,
 				      const struct iio_chan_spec *chan,
 				      enum iio_event_type type,
 				      enum iio_event_direction dir,
-				      int state)
+				      bool state)
 {
 	int ret;
 	struct stk3310_data *data = iio_priv(indio_dev);
diff --git a/drivers/iio/light/tcs3472.c b/drivers/iio/light/tcs3472.c
index 04452b4664f306339db42657c03e08bfc0ffff11..4186aac04902e6b12ee7978ef19c3b47faf773f7 100644
--- a/drivers/iio/light/tcs3472.c
+++ b/drivers/iio/light/tcs3472.c
@@ -327,7 +327,7 @@ static int tcs3472_read_event_config(struct iio_dev *indio_dev,
 
 static int tcs3472_write_event_config(struct iio_dev *indio_dev,
 	const struct iio_chan_spec *chan, enum iio_event_type type,
-	enum iio_event_direction dir, int state)
+	enum iio_event_direction dir, bool state)
 {
 	struct tcs3472_data *data = iio_priv(indio_dev);
 	int ret = 0;
diff --git a/drivers/iio/light/tsl2563.c b/drivers/iio/light/tsl2563.c
index 1a6f514bced6e0bd542c14a279071d5820a462c8..f1fe7640fce63bddad57fbe7809ee60bbfd44e1f 100644
--- a/drivers/iio/light/tsl2563.c
+++ b/drivers/iio/light/tsl2563.c
@@ -630,7 +630,7 @@ static irqreturn_t tsl2563_event_handler(int irq, void *private)
 
 static int tsl2563_write_interrupt_config(struct iio_dev *indio_dev,
 	const struct iio_chan_spec *chan, enum iio_event_type type,
-	enum iio_event_direction dir, int state)
+	enum iio_event_direction dir, bool state)
 {
 	struct tsl2563_chip *chip = iio_priv(indio_dev);
 	int ret = 0;
diff --git a/drivers/iio/light/tsl2591.c b/drivers/iio/light/tsl2591.c
index 850c2465992fa0d83430236825ce94051a104272..b81ca6f73f92732dc66a9be35c9dbed5088e8da1 100644
--- a/drivers/iio/light/tsl2591.c
+++ b/drivers/iio/light/tsl2591.c
@@ -985,7 +985,7 @@ static int tsl2591_write_event_config(struct iio_dev *indio_dev,
 				      const struct iio_chan_spec *chan,
 				      enum iio_event_type type,
 				      enum iio_event_direction dir,
-				      int state)
+				      bool state)
 {
 	struct tsl2591_chip *chip = iio_priv(indio_dev);
 	struct i2c_client *client = chip->client;
diff --git a/drivers/iio/light/tsl2772.c b/drivers/iio/light/tsl2772.c
index 26082f239c4c3aeabfe73ed100d6e885f5266329..349afdcbe30dd0c4c0fbabaa16ff7832e407e8ee 100644
--- a/drivers/iio/light/tsl2772.c
+++ b/drivers/iio/light/tsl2772.c
@@ -1081,7 +1081,7 @@ static int tsl2772_write_interrupt_config(struct iio_dev *indio_dev,
 					  const struct iio_chan_spec *chan,
 					  enum iio_event_type type,
 					  enum iio_event_direction dir,
-					  int val)
+					  bool val)
 {
 	struct tsl2772_chip *chip = iio_priv(indio_dev);
 
diff --git a/drivers/iio/light/us5182d.c b/drivers/iio/light/us5182d.c
index de6967ac3b0b3be02a96f3eb05aa58c49b0c87c7..c83114aed6b23f1d68068105b7c145bedf005b36 100644
--- a/drivers/iio/light/us5182d.c
+++ b/drivers/iio/light/us5182d.c
@@ -627,7 +627,7 @@ static int us5182d_read_event_config(struct iio_dev *indio_dev,
 
 static int us5182d_write_event_config(struct iio_dev *indio_dev,
 	const struct iio_chan_spec *chan, enum iio_event_type type,
-	enum iio_event_direction dir, int state)
+	enum iio_event_direction dir, bool state)
 {
 	struct us5182d_data *data = iio_priv(indio_dev);
 	int ret;
diff --git a/drivers/iio/light/vcnl4000.c b/drivers/iio/light/vcnl4000.c
index 4e3641ff2ed446262c12380e520d3d220865c00c..e19199b17f2ef7ebd022c211605418711b8220d2 100644
--- a/drivers/iio/light/vcnl4000.c
+++ b/drivers/iio/light/vcnl4000.c
@@ -1456,7 +1456,7 @@ static int vcnl4010_write_event_config(struct iio_dev *indio_dev,
 				       const struct iio_chan_spec *chan,
 				       enum iio_event_type type,
 				       enum iio_event_direction dir,
-				       int state)
+				       bool state)
 {
 	switch (chan->type) {
 	case IIO_PROXIMITY:
@@ -1501,7 +1501,8 @@ static int vcnl4040_read_event_config(struct iio_dev *indio_dev,
 static int vcnl4040_write_event_config(struct iio_dev *indio_dev,
 				       const struct iio_chan_spec *chan,
 				       enum iio_event_type type,
-				       enum iio_event_direction dir, int state)
+				       enum iio_event_direction dir,
+				       bool state)
 {
 	int ret = -EINVAL;
 	u16 val, mask;
diff --git a/drivers/iio/light/veml6030.c b/drivers/iio/light/veml6030.c
index 95751c1015909cd80543a559673f435d1a168f68..208a040ee345c3e137e4e58c397c59ce4d68aa30 100644
--- a/drivers/iio/light/veml6030.c
+++ b/drivers/iio/light/veml6030.c
@@ -821,7 +821,7 @@ static int veml6030_read_interrupt_config(struct iio_dev *indio_dev,
  */
 static int veml6030_write_interrupt_config(struct iio_dev *indio_dev,
 		const struct iio_chan_spec *chan, enum iio_event_type type,
-		enum iio_event_direction dir, int state)
+		enum iio_event_direction dir, bool state)
 {
 	int ret;
 	struct veml6030_data *data = iio_priv(indio_dev);
diff --git a/drivers/iio/position/iqs624-pos.c b/drivers/iio/position/iqs624-pos.c
index 4d7452314209fedd2e41e52764c6d036535cbbb1..8239239c6ee272f7dd6c4a615a29dd7f28d4be51 100644
--- a/drivers/iio/position/iqs624-pos.c
+++ b/drivers/iio/position/iqs624-pos.c
@@ -181,7 +181,7 @@ static int iqs624_pos_write_event_config(struct iio_dev *indio_dev,
 					 const struct iio_chan_spec *chan,
 					 enum iio_event_type type,
 					 enum iio_event_direction dir,
-					 int state)
+					 bool state)
 {
 	struct iqs624_pos_private *iqs624_pos = iio_priv(indio_dev);
 	struct iqs62x_core *iqs62x = iqs624_pos->iqs62x;
diff --git a/drivers/iio/proximity/aw96103.c b/drivers/iio/proximity/aw96103.c
index 707ba0a510aa5f2a30d3fa70ae81fa58b8dfbc33..cdd254da9e5035e3c3e062fe27982b4108cc6a45 100644
--- a/drivers/iio/proximity/aw96103.c
+++ b/drivers/iio/proximity/aw96103.c
@@ -422,7 +422,7 @@ static int aw96103_read_event_config(struct iio_dev *indio_dev,
 static int aw96103_write_event_config(struct iio_dev *indio_dev,
 				      const struct iio_chan_spec *chan,
 				      enum iio_event_type type,
-				      enum iio_event_direction dir, int state)
+				      enum iio_event_direction dir, bool state)
 {
 	struct aw96103 *aw96103 = iio_priv(indio_dev);
 
diff --git a/drivers/iio/proximity/cros_ec_mkbp_proximity.c b/drivers/iio/proximity/cros_ec_mkbp_proximity.c
index b1a4a923e788949b583eca68ebd878e33e385f16..667369be05553ea668bfcd79695645dbf1e56a25 100644
--- a/drivers/iio/proximity/cros_ec_mkbp_proximity.c
+++ b/drivers/iio/proximity/cros_ec_mkbp_proximity.c
@@ -167,7 +167,7 @@ static int cros_ec_mkbp_proximity_read_event_config(struct iio_dev *indio_dev,
 static int cros_ec_mkbp_proximity_write_event_config(struct iio_dev *indio_dev,
 				     const struct iio_chan_spec *chan,
 				     enum iio_event_type type,
-				     enum iio_event_direction dir, int state)
+				     enum iio_event_direction dir, bool state)
 {
 	struct cros_ec_mkbp_proximity_data *data = iio_priv(indio_dev);
 
diff --git a/drivers/iio/proximity/hx9023s.c b/drivers/iio/proximity/hx9023s.c
index 38441b1ee040c7c26047b0cb2ac443ecb8396df3..4021feb7a7ac70a135fb5fdcb832b9218b961fdc 100644
--- a/drivers/iio/proximity/hx9023s.c
+++ b/drivers/iio/proximity/hx9023s.c
@@ -874,7 +874,7 @@ static int hx9023s_write_event_config(struct iio_dev *indio_dev,
 				      const struct iio_chan_spec *chan,
 				      enum iio_event_type type,
 				      enum iio_event_direction dir,
-				      int state)
+				      bool state)
 {
 	struct hx9023s_data *data = iio_priv(indio_dev);
 
diff --git a/drivers/iio/proximity/irsd200.c b/drivers/iio/proximity/irsd200.c
index fb0691da99ee621e19013a64d122f097e793efd9..b09d15230111e6e5bbaae189adc26059a5a19f7a 100644
--- a/drivers/iio/proximity/irsd200.c
+++ b/drivers/iio/proximity/irsd200.c
@@ -648,7 +648,8 @@ static int irsd200_read_event_config(struct iio_dev *indio_dev,
 static int irsd200_write_event_config(struct iio_dev *indio_dev,
 				      const struct iio_chan_spec *chan,
 				      enum iio_event_type type,
-				      enum iio_event_direction dir, int state)
+				      enum iio_event_direction dir,
+				      bool state)
 {
 	struct irsd200_data *data = iio_priv(indio_dev);
 	unsigned int tmp;
diff --git a/drivers/iio/proximity/sx9500.c b/drivers/iio/proximity/sx9500.c
index e3da709424d5b2bd4e746df7adc4a4969e62f2a6..c4e94d0fb163740e5acb9bd1a3afd694023b04fa 100644
--- a/drivers/iio/proximity/sx9500.c
+++ b/drivers/iio/proximity/sx9500.c
@@ -540,7 +540,7 @@ static int sx9500_write_event_config(struct iio_dev *indio_dev,
 				     const struct iio_chan_spec *chan,
 				     enum iio_event_type type,
 				     enum iio_event_direction dir,
-				     int state)
+				     bool state)
 {
 	struct sx9500_data *data = iio_priv(indio_dev);
 	int ret;
diff --git a/drivers/iio/proximity/sx_common.c b/drivers/iio/proximity/sx_common.c
index bcf502e0234236e2362c1eb63da3bc488b0178a1..76384c74fe0120e9d004ecad28b4339793edb414 100644
--- a/drivers/iio/proximity/sx_common.c
+++ b/drivers/iio/proximity/sx_common.c
@@ -268,7 +268,7 @@ EXPORT_SYMBOL_NS_GPL(sx_common_read_event_config, SEMTECH_PROX);
 int sx_common_write_event_config(struct iio_dev *indio_dev,
 				 const struct iio_chan_spec *chan,
 				 enum iio_event_type type,
-				 enum iio_event_direction dir, int state)
+				 enum iio_event_direction dir, bool state)
 {
 	struct sx_common_data *data = iio_priv(indio_dev);
 	unsigned int eventirq = SX_COMMON_FAR_IRQ | SX_COMMON_CLOSE_IRQ;
diff --git a/drivers/iio/proximity/sx_common.h b/drivers/iio/proximity/sx_common.h
index da53268201a9fcdec9469fb5798d049146b08329..fb14e6f06a6de3485e0b817e4a069d5300ddfb6c 100644
--- a/drivers/iio/proximity/sx_common.h
+++ b/drivers/iio/proximity/sx_common.h
@@ -143,7 +143,7 @@ int sx_common_read_event_config(struct iio_dev *indio_dev,
 int sx_common_write_event_config(struct iio_dev *indio_dev,
 				 const struct iio_chan_spec *chan,
 				 enum iio_event_type type,
-				 enum iio_event_direction dir, int state);
+				 enum iio_event_direction dir, bool state);
 
 int sx_common_probe(struct i2c_client *client,
 		    const struct sx_common_chip_info *chip_info,
diff --git a/drivers/iio/proximity/vcnl3020.c b/drivers/iio/proximity/vcnl3020.c
index d1ddf85f53836ec34464d382426b187804964a57..bb6c9cc88b358de098543df8a0da7d22914c5e47 100644
--- a/drivers/iio/proximity/vcnl3020.c
+++ b/drivers/iio/proximity/vcnl3020.c
@@ -449,7 +449,7 @@ static int vcnl3020_write_event_config(struct iio_dev *indio_dev,
 				       const struct iio_chan_spec *chan,
 				       enum iio_event_type type,
 				       enum iio_event_direction dir,
-				       int state)
+				       bool state)
 {
 	switch (chan->type) {
 	case IIO_PROXIMITY:
diff --git a/drivers/iio/temperature/mcp9600.c b/drivers/iio/temperature/mcp9600.c
index f1bb0976273d37fd662ed4e7e3f43c9ae82e2aaf..c2447860adfd6f4b1a9f4d61e3de301271fe05d9 100644
--- a/drivers/iio/temperature/mcp9600.c
+++ b/drivers/iio/temperature/mcp9600.c
@@ -200,7 +200,7 @@ static int mcp9600_write_event_config(struct iio_dev *indio_dev,
 				      const struct iio_chan_spec *chan,
 				      enum iio_event_type type,
 				      enum iio_event_direction dir,
-				      int state)
+				      bool state)
 {
 	struct mcp9600_data *data = iio_priv(indio_dev);
 	struct i2c_client *client = data->client;
diff --git a/drivers/iio/temperature/tmp007.c b/drivers/iio/temperature/tmp007.c
index 9bdfa94234929c35f3e4871bc291be21bbfba82e..fd4d389ce1dfec031652d4f7881ec0b72a015998 100644
--- a/drivers/iio/temperature/tmp007.c
+++ b/drivers/iio/temperature/tmp007.c
@@ -216,7 +216,7 @@ static irqreturn_t tmp007_interrupt_handler(int irq, void *private)
 
 static int tmp007_write_event_config(struct iio_dev *indio_dev,
 		const struct iio_chan_spec *chan, enum iio_event_type type,
-		enum iio_event_direction dir, int state)
+		enum iio_event_direction dir, bool state)
 {
 	struct tmp007_data *data = iio_priv(indio_dev);
 	unsigned int status_mask;
diff --git a/include/linux/iio/iio.h b/include/linux/iio/iio.h
index 747e89975d369f3c76aa49a96a7dc09f185e2557..409c417daa0cfeb5f7d90d10fe6f637a8e9fa5fe 100644
--- a/include/linux/iio/iio.h
+++ b/include/linux/iio/iio.h
@@ -518,7 +518,7 @@ struct iio_info {
 				  const struct iio_chan_spec *chan,
 				  enum iio_event_type type,
 				  enum iio_event_direction dir,
-				  int state);
+				  bool state);
 
 	int (*read_event_value)(struct iio_dev *indio_dev,
 				const struct iio_chan_spec *chan,

-- 
2.47.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH v2 08/15] iio: accel: mma9551: use bool for event state
  2024-10-31 15:26 [PATCH v2 00/15] iio: fix write_event_config signature Julien Stephan
                   ` (6 preceding siblings ...)
  2024-10-31 15:27 ` [PATCH v2 07/15] iio: fix write_event_config signature Julien Stephan
@ 2024-10-31 15:27 ` Julien Stephan
  2024-11-01 16:33   ` Jonathan Cameron
  2024-10-31 15:27 ` [PATCH v2 09/15] iio: accel: sca3000: " Julien Stephan
                   ` (6 subsequent siblings)
  14 siblings, 1 reply; 36+ messages in thread
From: Julien Stephan @ 2024-10-31 15:27 UTC (permalink / raw)
  To: Mudit Sharma, Jonathan Cameron, Lars-Peter Clausen, Anshul Dalal,
	Javier Carrasco, Jean-Baptiste Maneyrol, Michael Hennerich,
	Cosmin Tanislav, Ramona Gradinariu, Antoniu Miclaus,
	Dan Robertson, Marcelo Schmitt, Matteo Martelli,
	Anand Ashok Dumbre, Michal Simek, Mariel Tinaco, Jagath Jog J,
	Lorenzo Bianconi, Subhajit Ghosh, Kevin Tsai, Linus Walleij,
	Benson Leung, Guenter Roeck
  Cc: linux-iio, linux-kernel, linux-arm-kernel, chrome-platform,
	Julien Stephan

Since the write_event_config callback now uses a bool for the state
parameter, update the signature of the function it calls accordingly,
and use a bool array for event_enabled.

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
---
 drivers/iio/accel/mma9551.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/iio/accel/mma9551.c b/drivers/iio/accel/mma9551.c
index 605022f5239a6412827f4ba059aa18d490908720..6d73eec951263956f314f82542becbbae933de91 100644
--- a/drivers/iio/accel/mma9551.c
+++ b/drivers/iio/accel/mma9551.c
@@ -45,7 +45,7 @@ enum mma9551_tilt_axis {
 struct mma9551_data {
 	struct i2c_client *client;
 	struct mutex mutex;
-	int event_enabled[3];
+	bool event_enabled[3];
 	int irqs[MMA9551_GPIO_COUNT];
 };
 
@@ -162,7 +162,7 @@ static int mma9551_read_event_config(struct iio_dev *indio_dev,
 
 static int mma9551_config_incli_event(struct iio_dev *indio_dev,
 				      enum iio_modifier axis,
-				      int state)
+				      bool state)
 {
 	struct mma9551_data *data = iio_priv(indio_dev);
 	enum mma9551_tilt_axis mma_axis;
@@ -174,7 +174,7 @@ static int mma9551_config_incli_event(struct iio_dev *indio_dev,
 	if (data->event_enabled[mma_axis] == state)
 		return 0;
 
-	if (state == 0) {
+	if (!state) {
 		ret = mma9551_gpio_config(data->client,
 					  (enum mma9551_gpio_pin)mma_axis,
 					  MMA9551_APPID_NONE, 0, 0);

-- 
2.47.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH v2 09/15] iio: accel: sca3000: use bool for event state
  2024-10-31 15:26 [PATCH v2 00/15] iio: fix write_event_config signature Julien Stephan
                   ` (7 preceding siblings ...)
  2024-10-31 15:27 ` [PATCH v2 08/15] iio: accel: mma9551: use bool for event state Julien Stephan
@ 2024-10-31 15:27 ` Julien Stephan
  2024-11-01 16:34   ` Jonathan Cameron
  2024-10-31 15:27 ` [PATCH v2 10/15] iio: imu: bmi323: " Julien Stephan
                   ` (5 subsequent siblings)
  14 siblings, 1 reply; 36+ messages in thread
From: Julien Stephan @ 2024-10-31 15:27 UTC (permalink / raw)
  To: Mudit Sharma, Jonathan Cameron, Lars-Peter Clausen, Anshul Dalal,
	Javier Carrasco, Jean-Baptiste Maneyrol, Michael Hennerich,
	Cosmin Tanislav, Ramona Gradinariu, Antoniu Miclaus,
	Dan Robertson, Marcelo Schmitt, Matteo Martelli,
	Anand Ashok Dumbre, Michal Simek, Mariel Tinaco, Jagath Jog J,
	Lorenzo Bianconi, Subhajit Ghosh, Kevin Tsai, Linus Walleij,
	Benson Leung, Guenter Roeck
  Cc: linux-iio, linux-kernel, linux-arm-kernel, chrome-platform,
	Julien Stephan

Since the write_event_config callback now uses a bool for the state
parameter, update the signatures of the functions it calls accordingly.

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
---
 drivers/iio/accel/sca3000.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/iio/accel/sca3000.c b/drivers/iio/accel/sca3000.c
index 36cbfcbba04d6920ba68bebd70d21bc3898a044d..3fb0f386c3db603714a746c28be36ee78d1b2a6a 100644
--- a/drivers/iio/accel/sca3000.c
+++ b/drivers/iio/accel/sca3000.c
@@ -1158,7 +1158,7 @@ static int sca3000_read_event_config(struct iio_dev *indio_dev,
 	return ret;
 }
 
-static int sca3000_freefall_set_state(struct iio_dev *indio_dev, int state)
+static int sca3000_freefall_set_state(struct iio_dev *indio_dev, bool state)
 {
 	struct sca3000_state *st = iio_priv(indio_dev);
 	int ret;
@@ -1181,7 +1181,7 @@ static int sca3000_freefall_set_state(struct iio_dev *indio_dev, int state)
 }
 
 static int sca3000_motion_detect_set_state(struct iio_dev *indio_dev, int axis,
-					   int state)
+					   bool state)
 {
 	struct sca3000_state *st = iio_priv(indio_dev);
 	int ret, ctrlval;

-- 
2.47.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH v2 10/15] iio: imu: bmi323: use bool for event state
  2024-10-31 15:26 [PATCH v2 00/15] iio: fix write_event_config signature Julien Stephan
                   ` (8 preceding siblings ...)
  2024-10-31 15:27 ` [PATCH v2 09/15] iio: accel: sca3000: " Julien Stephan
@ 2024-10-31 15:27 ` Julien Stephan
  2024-11-01 16:35   ` Jonathan Cameron
  2024-10-31 15:27 ` [PATCH v2 11/15] iio: imu: st_lsm6dsx: " Julien Stephan
                   ` (4 subsequent siblings)
  14 siblings, 1 reply; 36+ messages in thread
From: Julien Stephan @ 2024-10-31 15:27 UTC (permalink / raw)
  To: Mudit Sharma, Jonathan Cameron, Lars-Peter Clausen, Anshul Dalal,
	Javier Carrasco, Jean-Baptiste Maneyrol, Michael Hennerich,
	Cosmin Tanislav, Ramona Gradinariu, Antoniu Miclaus,
	Dan Robertson, Marcelo Schmitt, Matteo Martelli,
	Anand Ashok Dumbre, Michal Simek, Mariel Tinaco, Jagath Jog J,
	Lorenzo Bianconi, Subhajit Ghosh, Kevin Tsai, Linus Walleij,
	Benson Leung, Guenter Roeck
  Cc: linux-iio, linux-kernel, linux-arm-kernel, chrome-platform,
	Julien Stephan

Since the write_event_config callback now uses a bool for the state
parameter, update the signatures of the functions it calls accordingly.

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
---
 drivers/iio/imu/bmi323/bmi323_core.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/iio/imu/bmi323/bmi323_core.c b/drivers/iio/imu/bmi323/bmi323_core.c
index 76a88e1ccc1d89988eb52d6b1be8da0f5005f0e6..161bb1d2e761688dd740635f8a2830e9562d1b59 100644
--- a/drivers/iio/imu/bmi323/bmi323_core.c
+++ b/drivers/iio/imu/bmi323/bmi323_core.c
@@ -467,7 +467,7 @@ static int bmi323_feature_engine_events(struct bmi323_data *data,
 			    BMI323_FEAT_IO_STATUS_MSK);
 }
 
-static int bmi323_step_wtrmrk_en(struct bmi323_data *data, int state)
+static int bmi323_step_wtrmrk_en(struct bmi323_data *data, bool state)
 {
 	enum bmi323_irq_pin step_irq;
 	int ret;
@@ -484,7 +484,7 @@ static int bmi323_step_wtrmrk_en(struct bmi323_data *data, int state)
 	ret = bmi323_update_ext_reg(data, BMI323_STEP_SC1_REG,
 				    BMI323_STEP_SC1_WTRMRK_MSK,
 				    FIELD_PREP(BMI323_STEP_SC1_WTRMRK_MSK,
-					       state ? 1 : 0));
+					       state));
 	if (ret)
 		return ret;
 
@@ -506,7 +506,7 @@ static int bmi323_motion_config_reg(enum iio_event_direction dir)
 }
 
 static int bmi323_motion_event_en(struct bmi323_data *data,
-				  enum iio_event_direction dir, int state)
+				  enum iio_event_direction dir, bool state)
 {
 	unsigned int state_value = state ? BMI323_FEAT_XYZ_MSK : 0;
 	int config, ret, msk, raw, field_value;
@@ -570,7 +570,7 @@ static int bmi323_motion_event_en(struct bmi323_data *data,
 }
 
 static int bmi323_tap_event_en(struct bmi323_data *data,
-			       enum iio_event_direction dir, int state)
+			       enum iio_event_direction dir, bool state)
 {
 	enum bmi323_irq_pin tap_irq;
 	int ret, tap_enabled;

-- 
2.47.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH v2 11/15] iio: imu: st_lsm6dsx: use bool for event state
  2024-10-31 15:26 [PATCH v2 00/15] iio: fix write_event_config signature Julien Stephan
                   ` (9 preceding siblings ...)
  2024-10-31 15:27 ` [PATCH v2 10/15] iio: imu: bmi323: " Julien Stephan
@ 2024-10-31 15:27 ` Julien Stephan
  2024-11-01 16:36   ` Jonathan Cameron
  2024-10-31 15:27 ` [PATCH v2 12/15] iio: light: apds9300: " Julien Stephan
                   ` (3 subsequent siblings)
  14 siblings, 1 reply; 36+ messages in thread
From: Julien Stephan @ 2024-10-31 15:27 UTC (permalink / raw)
  To: Mudit Sharma, Jonathan Cameron, Lars-Peter Clausen, Anshul Dalal,
	Javier Carrasco, Jean-Baptiste Maneyrol, Michael Hennerich,
	Cosmin Tanislav, Ramona Gradinariu, Antoniu Miclaus,
	Dan Robertson, Marcelo Schmitt, Matteo Martelli,
	Anand Ashok Dumbre, Michal Simek, Mariel Tinaco, Jagath Jog J,
	Lorenzo Bianconi, Subhajit Ghosh, Kevin Tsai, Linus Walleij,
	Benson Leung, Guenter Roeck
  Cc: linux-iio, linux-kernel, linux-arm-kernel, chrome-platform,
	Julien Stephan

Since the write_event_config callback now uses a bool for the state
parameter, update the signature of the function it calls accordingly.

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
---
 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
index caefa15e559b8808051ff1c7f82c3f36c947933c..509e0169dcd54e773540c4e3f1b56e5b737f80c3 100644
--- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
+++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
@@ -1865,7 +1865,7 @@ static int st_lsm6dsx_write_raw(struct iio_dev *iio_dev,
 	return err;
 }
 
-static int st_lsm6dsx_event_setup(struct st_lsm6dsx_hw *hw, int state)
+static int st_lsm6dsx_event_setup(struct st_lsm6dsx_hw *hw, bool state)
 {
 	const struct st_lsm6dsx_reg *reg;
 	unsigned int data;

-- 
2.47.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH v2 12/15] iio: light: apds9300: use bool for event state
  2024-10-31 15:26 [PATCH v2 00/15] iio: fix write_event_config signature Julien Stephan
                   ` (10 preceding siblings ...)
  2024-10-31 15:27 ` [PATCH v2 11/15] iio: imu: st_lsm6dsx: " Julien Stephan
@ 2024-10-31 15:27 ` Julien Stephan
  2024-11-01 16:40   ` Jonathan Cameron
  2024-10-31 15:27 ` [PATCH v2 13/15] iio: light: apds9306: simplifies if branch in apds9306_write_event_config Julien Stephan
                   ` (2 subsequent siblings)
  14 siblings, 1 reply; 36+ messages in thread
From: Julien Stephan @ 2024-10-31 15:27 UTC (permalink / raw)
  To: Mudit Sharma, Jonathan Cameron, Lars-Peter Clausen, Anshul Dalal,
	Javier Carrasco, Jean-Baptiste Maneyrol, Michael Hennerich,
	Cosmin Tanislav, Ramona Gradinariu, Antoniu Miclaus,
	Dan Robertson, Marcelo Schmitt, Matteo Martelli,
	Anand Ashok Dumbre, Michal Simek, Mariel Tinaco, Jagath Jog J,
	Lorenzo Bianconi, Subhajit Ghosh, Kevin Tsai, Linus Walleij,
	Benson Leung, Guenter Roeck
  Cc: linux-iio, linux-kernel, linux-arm-kernel, chrome-platform,
	Julien Stephan

Since the write_event_config callback now uses a bool for the state
parameter, update apds9300_set_intr_state accordingly and change intr_en
to bool.

Also update apds9300_set_power_state and power_state for consistency.

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
---
 drivers/iio/light/apds9300.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/iio/light/apds9300.c b/drivers/iio/light/apds9300.c
index 95861b2a5b2d94011d894959289c5c4f06cc1efe..98bdf8bc298b664aba71d3c38d7f224808e5997d 100644
--- a/drivers/iio/light/apds9300.c
+++ b/drivers/iio/light/apds9300.c
@@ -46,10 +46,10 @@
 struct apds9300_data {
 	struct i2c_client *client;
 	struct mutex mutex;
-	int power_state;
+	bool power_state;
 	int thresh_low;
 	int thresh_hi;
-	int intr_en;
+	bool intr_en;
 };
 
 /* Lux calculation */
@@ -148,7 +148,7 @@ static int apds9300_set_thresh_hi(struct apds9300_data *data, int value)
 	return 0;
 }
 
-static int apds9300_set_intr_state(struct apds9300_data *data, int state)
+static int apds9300_set_intr_state(struct apds9300_data *data, bool state)
 {
 	int ret;
 	u8 cmd;
@@ -169,7 +169,7 @@ static int apds9300_set_intr_state(struct apds9300_data *data, int state)
 	return 0;
 }
 
-static int apds9300_set_power_state(struct apds9300_data *data, int state)
+static int apds9300_set_power_state(struct apds9300_data *data, bool state)
 {
 	int ret;
 	u8 cmd;

-- 
2.47.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH v2 13/15] iio: light: apds9306: simplifies if branch in apds9306_write_event_config
  2024-10-31 15:26 [PATCH v2 00/15] iio: fix write_event_config signature Julien Stephan
                   ` (11 preceding siblings ...)
  2024-10-31 15:27 ` [PATCH v2 12/15] iio: light: apds9300: " Julien Stephan
@ 2024-10-31 15:27 ` Julien Stephan
  2024-11-01 16:41   ` Jonathan Cameron
  2024-10-31 15:27 ` [PATCH v2 14/15] iio: light: apds9960: convert als_int and pxs_int to bool Julien Stephan
  2024-10-31 15:27 ` [PATCH v2 15/15] iio: light: apds9960: remove useless return Julien Stephan
  14 siblings, 1 reply; 36+ messages in thread
From: Julien Stephan @ 2024-10-31 15:27 UTC (permalink / raw)
  To: Mudit Sharma, Jonathan Cameron, Lars-Peter Clausen, Anshul Dalal,
	Javier Carrasco, Jean-Baptiste Maneyrol, Michael Hennerich,
	Cosmin Tanislav, Ramona Gradinariu, Antoniu Miclaus,
	Dan Robertson, Marcelo Schmitt, Matteo Martelli,
	Anand Ashok Dumbre, Michal Simek, Mariel Tinaco, Jagath Jog J,
	Lorenzo Bianconi, Subhajit Ghosh, Kevin Tsai, Linus Walleij,
	Benson Leung, Guenter Roeck
  Cc: linux-iio, linux-kernel, linux-arm-kernel, chrome-platform,
	Julien Stephan

Simplifies the regmap_wite if branch in apds9306_write_event_config.

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
---
 drivers/iio/light/apds9306.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/iio/light/apds9306.c b/drivers/iio/light/apds9306.c
index 8adc74040db2bddf93fbb773e3519abcc726b9a6..9c08e7c3ad0c17519689a630d42fe9b90438dfe8 100644
--- a/drivers/iio/light/apds9306.c
+++ b/drivers/iio/light/apds9306.c
@@ -1125,10 +1125,7 @@ static int apds9306_write_event_config(struct iio_dev *indio_dev,
 		}
 	}
 	case IIO_EV_TYPE_THRESH_ADAPTIVE:
-		if (state)
-			return regmap_field_write(rf->int_thresh_var_en, 1);
-		else
-			return regmap_field_write(rf->int_thresh_var_en, 0);
+		return regmap_field_write(rf->int_thresh_var_en, state);
 	default:
 		return -EINVAL;
 	}

-- 
2.47.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH v2 14/15] iio: light: apds9960: convert als_int and pxs_int to bool
  2024-10-31 15:26 [PATCH v2 00/15] iio: fix write_event_config signature Julien Stephan
                   ` (12 preceding siblings ...)
  2024-10-31 15:27 ` [PATCH v2 13/15] iio: light: apds9306: simplifies if branch in apds9306_write_event_config Julien Stephan
@ 2024-10-31 15:27 ` Julien Stephan
  2024-11-01 16:42   ` Jonathan Cameron
  2024-10-31 15:27 ` [PATCH v2 15/15] iio: light: apds9960: remove useless return Julien Stephan
  14 siblings, 1 reply; 36+ messages in thread
From: Julien Stephan @ 2024-10-31 15:27 UTC (permalink / raw)
  To: Mudit Sharma, Jonathan Cameron, Lars-Peter Clausen, Anshul Dalal,
	Javier Carrasco, Jean-Baptiste Maneyrol, Michael Hennerich,
	Cosmin Tanislav, Ramona Gradinariu, Antoniu Miclaus,
	Dan Robertson, Marcelo Schmitt, Matteo Martelli,
	Anand Ashok Dumbre, Michal Simek, Mariel Tinaco, Jagath Jog J,
	Lorenzo Bianconi, Subhajit Ghosh, Kevin Tsai, Linus Walleij,
	Benson Leung, Guenter Roeck
  Cc: linux-iio, linux-kernel, linux-arm-kernel, chrome-platform,
	Julien Stephan

Since the write_event_config callback now uses a bool for the state
parameter, update type of als_int and pxs_int to bool.

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
---
 drivers/iio/light/apds9960.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/iio/light/apds9960.c b/drivers/iio/light/apds9960.c
index a7f0cc99f236685900f89fbc48de3be0e9a40704..7b3da88885693c488807da459ceaa1cbb3881bcd 100644
--- a/drivers/iio/light/apds9960.c
+++ b/drivers/iio/light/apds9960.c
@@ -133,8 +133,8 @@ struct apds9960_data {
 	struct regmap_field *reg_enable_pxs;
 
 	/* state */
-	int als_int;
-	int pxs_int;
+	bool als_int;
+	bool pxs_int;
 	int gesture_mode_running;
 
 	/* gain values */

-- 
2.47.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [PATCH v2 15/15] iio: light: apds9960: remove useless return
  2024-10-31 15:26 [PATCH v2 00/15] iio: fix write_event_config signature Julien Stephan
                   ` (13 preceding siblings ...)
  2024-10-31 15:27 ` [PATCH v2 14/15] iio: light: apds9960: convert als_int and pxs_int to bool Julien Stephan
@ 2024-10-31 15:27 ` Julien Stephan
  2024-11-01 16:44   ` Jonathan Cameron
  14 siblings, 1 reply; 36+ messages in thread
From: Julien Stephan @ 2024-10-31 15:27 UTC (permalink / raw)
  To: Mudit Sharma, Jonathan Cameron, Lars-Peter Clausen, Anshul Dalal,
	Javier Carrasco, Jean-Baptiste Maneyrol, Michael Hennerich,
	Cosmin Tanislav, Ramona Gradinariu, Antoniu Miclaus,
	Dan Robertson, Marcelo Schmitt, Matteo Martelli,
	Anand Ashok Dumbre, Michal Simek, Mariel Tinaco, Jagath Jog J,
	Lorenzo Bianconi, Subhajit Ghosh, Kevin Tsai, Linus Walleij,
	Benson Leung, Guenter Roeck
  Cc: linux-iio, linux-kernel, linux-arm-kernel, chrome-platform,
	Julien Stephan

return 0 statement at the end of apds9960_read_event_config is useless.
Remove it.

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
---
 drivers/iio/light/apds9960.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/iio/light/apds9960.c b/drivers/iio/light/apds9960.c
index 7b3da88885693c488807da459ceaa1cbb3881bcd..d30441d3370309fce9d6c717d42b829ff1db3174 100644
--- a/drivers/iio/light/apds9960.c
+++ b/drivers/iio/light/apds9960.c
@@ -749,8 +749,6 @@ static int apds9960_read_event_config(struct iio_dev *indio_dev,
 	default:
 		return -EINVAL;
 	}
-
-	return 0;
 }
 
 static int apds9960_write_event_config(struct iio_dev *indio_dev,

-- 
2.47.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* Re: [PATCH v2 06/15] iio: light: adux1020: write_event_config: use local variable for interrupt value
  2024-10-31 15:27 ` [PATCH v2 06/15] iio: light: adux1020: write_event_config: use local variable for interrupt value Julien Stephan
@ 2024-10-31 16:27   ` David Lechner
  2024-11-01 15:44     ` Jonathan Cameron
  0 siblings, 1 reply; 36+ messages in thread
From: David Lechner @ 2024-10-31 16:27 UTC (permalink / raw)
  To: Julien Stephan, Mudit Sharma, Jonathan Cameron,
	Lars-Peter Clausen, Anshul Dalal, Javier Carrasco,
	Jean-Baptiste Maneyrol, Michael Hennerich, Cosmin Tanislav,
	Ramona Gradinariu, Antoniu Miclaus, Dan Robertson,
	Marcelo Schmitt, Matteo Martelli, Anand Ashok Dumbre,
	Michal Simek, Mariel Tinaco, Jagath Jog J, Lorenzo Bianconi,
	Subhajit Ghosh, Kevin Tsai, Linus Walleij, Benson Leung,
	Guenter Roeck
  Cc: linux-iio, linux-kernel, linux-arm-kernel, chrome-platform

On 10/31/24 10:27 AM, Julien Stephan wrote:
> state parameter is currently an int, but it is actually a boolean.
> iio_ev_state_store is actually using kstrtobool to check user input,
> then gives the converted boolean value to write_event_config.  The code
> in adux1020_write_event_config re-uses state parameter to store an
> integer value. To prepare for updating the write_event_config signature
> to use a boolean for state, introduce a new local int variable.
> 
> Signed-off-by: Julien Stephan <jstephan@baylibre.com>
> ---
>  drivers/iio/light/adux1020.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/iio/light/adux1020.c b/drivers/iio/light/adux1020.c
> index 2e0170be077aef9aa194fab51afbb33aec02e513..db57d84da616b91add8c5d1aba08a73ce18c367e 100644
> --- a/drivers/iio/light/adux1020.c
> +++ b/drivers/iio/light/adux1020.c
> @@ -505,7 +505,7 @@ static int adux1020_write_event_config(struct iio_dev *indio_dev,
>  				       enum iio_event_direction dir, int state)
>  {
>  	struct adux1020_data *data = iio_priv(indio_dev);
> -	int ret, mask;
> +	int ret, mask, val;
>  
>  	mutex_lock(&data->lock);
>  
> @@ -526,12 +526,12 @@ static int adux1020_write_event_config(struct iio_dev *indio_dev,
>  			mask = ADUX1020_PROX_OFF1_INT;
>  
>  		if (state)
> -			state = 0;
> +			val = 0;
>  		else
> -			state = mask;
> +			val = mask;
>  
>  		ret = regmap_update_bits(data->regmap, ADUX1020_REG_INT_MASK,
> -					 mask, state);
> +					 mask, val);
>  		if (ret < 0)
>  			goto fail;
>  
> 

Instead of introducing `val`, I would rewrite this as:

	if (state)
		ret = regmap_clear_bits(...);
	else
		ret = regmap_set_bits(...);





^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v2 01/15] iio: light: ltr390: simplify code in write_event_config callback
  2024-10-31 15:26 ` [PATCH v2 01/15] iio: light: ltr390: simplify code in write_event_config callback Julien Stephan
@ 2024-11-01 15:32   ` Jonathan Cameron
  0 siblings, 0 replies; 36+ messages in thread
From: Jonathan Cameron @ 2024-11-01 15:32 UTC (permalink / raw)
  To: Julien Stephan
  Cc: Mudit Sharma, Lars-Peter Clausen, Anshul Dalal, Javier Carrasco,
	Jean-Baptiste Maneyrol, Michael Hennerich, Cosmin Tanislav,
	Ramona Gradinariu, Antoniu Miclaus, Dan Robertson,
	Marcelo Schmitt, Matteo Martelli, Anand Ashok Dumbre,
	Michal Simek, Mariel Tinaco, Jagath Jog J, Lorenzo Bianconi,
	Subhajit Ghosh, Kevin Tsai, Linus Walleij, Benson Leung,
	Guenter Roeck, linux-iio, linux-kernel, linux-arm-kernel,
	chrome-platform

On Thu, 31 Oct 2024 16:26:56 +0100
Julien Stephan <jstephan@baylibre.com> wrote:

> iio_ev_state_store is actually using kstrtobool to check user
> input, then gives the converted boolean value to the write_event_config
> callback.
> 
> Remove useless code in write_event_config callback.
> 
> Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Given these are good cleanup even without the final patches I'm going to
pick them up as I go. Maybe I'll end up taking the lot though!

Applied this one.

Thanks

Jonathan

> ---
>  drivers/iio/light/ltr390.c | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
> 
> diff --git a/drivers/iio/light/ltr390.c b/drivers/iio/light/ltr390.c
> index 8e0a3fc3d923a6f65d2a629c87e7bfd35d82a507..3bdffb6360bcbaab4df1a2d39c8ea3813b5d6bd3 100644
> --- a/drivers/iio/light/ltr390.c
> +++ b/drivers/iio/light/ltr390.c
> @@ -558,10 +558,7 @@ static int ltr390_write_event_config(struct iio_dev *indio_dev,
>  	struct ltr390_data *data = iio_priv(indio_dev);
>  	int ret;
>  
> -	if (state != 1  && state != 0)
> -		return -EINVAL;
> -
> -	if (state == 0)
> +	if (!state)
>  		return regmap_clear_bits(data->regmap, LTR390_INT_CFG, LTR390_LS_INT_EN);
>  
>  	guard(mutex)(&data->lock);
> 



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v2 02/15] iio: proximity: hx9023s: simplify code in write_event_config callback
  2024-10-31 15:26 ` [PATCH v2 02/15] iio: proximity: hx9023s: " Julien Stephan
@ 2024-11-01 15:34   ` Jonathan Cameron
  0 siblings, 0 replies; 36+ messages in thread
From: Jonathan Cameron @ 2024-11-01 15:34 UTC (permalink / raw)
  To: Julien Stephan
  Cc: Mudit Sharma, Lars-Peter Clausen, Anshul Dalal, Javier Carrasco,
	Jean-Baptiste Maneyrol, Michael Hennerich, Cosmin Tanislav,
	Ramona Gradinariu, Antoniu Miclaus, Dan Robertson,
	Marcelo Schmitt, Matteo Martelli, Anand Ashok Dumbre,
	Michal Simek, Mariel Tinaco, Jagath Jog J, Lorenzo Bianconi,
	Subhajit Ghosh, Kevin Tsai, Linus Walleij, Benson Leung,
	Guenter Roeck, linux-iio, linux-kernel, linux-arm-kernel,
	chrome-platform

On Thu, 31 Oct 2024 16:26:57 +0100
Julien Stephan <jstephan@baylibre.com> wrote:

> iio_ev_state_store is actually using kstrtobool to check user
> input, then gives the converted boolean value to the write_event_config
> callback.
> 
> Remove useless code in write_event_config callback.
> 
> Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Applied to the togreg branch of iio.git and pushed out as testing.
Note if anyone else has time to review, I can still add tags for now.

I'll probably push it out as an (in theory) not rebasing tree early
next week to give a bit of time in next before a pull request.

Jonathan

> ---
>  drivers/iio/proximity/hx9023s.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/proximity/hx9023s.c b/drivers/iio/proximity/hx9023s.c
> index d8fb34060d3db88a3ba5ecdc209b14be8e42e8b9..38441b1ee040c7c26047b0cb2ac443ecb8396df3 100644
> --- a/drivers/iio/proximity/hx9023s.c
> +++ b/drivers/iio/proximity/hx9023s.c
> @@ -879,7 +879,7 @@ static int hx9023s_write_event_config(struct iio_dev *indio_dev,
>  	struct hx9023s_data *data = iio_priv(indio_dev);
>  
>  	if (test_bit(chan->channel, &data->chan_in_use)) {
> -		hx9023s_ch_en(data, chan->channel, !!state);
> +		hx9023s_ch_en(data, chan->channel, state);
>  		__assign_bit(chan->channel, &data->chan_event,
>  			     data->ch_data[chan->channel].enable);
>  	}
> 



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v2 03/15] iio: light: tsl2772: simplify code in write_event_config callback
  2024-10-31 15:26 ` [PATCH v2 03/15] iio: light: tsl2772: " Julien Stephan
@ 2024-11-01 15:35   ` Jonathan Cameron
  0 siblings, 0 replies; 36+ messages in thread
From: Jonathan Cameron @ 2024-11-01 15:35 UTC (permalink / raw)
  To: Julien Stephan
  Cc: Mudit Sharma, Lars-Peter Clausen, Anshul Dalal, Javier Carrasco,
	Jean-Baptiste Maneyrol, Michael Hennerich, Cosmin Tanislav,
	Ramona Gradinariu, Antoniu Miclaus, Dan Robertson,
	Marcelo Schmitt, Matteo Martelli, Anand Ashok Dumbre,
	Michal Simek, Mariel Tinaco, Jagath Jog J, Lorenzo Bianconi,
	Subhajit Ghosh, Kevin Tsai, Linus Walleij, Benson Leung,
	Guenter Roeck, linux-iio, linux-kernel, linux-arm-kernel,
	chrome-platform

On Thu, 31 Oct 2024 16:26:58 +0100
Julien Stephan <jstephan@baylibre.com> wrote:

> iio_ev_state_store is actually using kstrtobool to check user
> input, then gives the converted boolean value to the write_event_config
> callback.
> 
> Remove useless code in write_event_config callback.
> 
> Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Applied.
> ---
>  drivers/iio/light/tsl2772.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/iio/light/tsl2772.c b/drivers/iio/light/tsl2772.c
> index cab468a82b616a23394977da1d8822d29d8941d3..26082f239c4c3aeabfe73ed100d6e885f5266329 100644
> --- a/drivers/iio/light/tsl2772.c
> +++ b/drivers/iio/light/tsl2772.c
> @@ -1086,9 +1086,9 @@ static int tsl2772_write_interrupt_config(struct iio_dev *indio_dev,
>  	struct tsl2772_chip *chip = iio_priv(indio_dev);
>  
>  	if (chan->type == IIO_INTENSITY)
> -		chip->settings.als_interrupt_en = val ? true : false;
> +		chip->settings.als_interrupt_en = val;
>  	else
> -		chip->settings.prox_interrupt_en = val ? true : false;
> +		chip->settings.prox_interrupt_en = val;
>  
>  	return tsl2772_invoke_change(indio_dev);
>  }
> 



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v2 04/15] iio: proximity: irsd200: simplify code in write_event_config callback
  2024-10-31 15:26 ` [PATCH v2 04/15] iio: proximity: irsd200: " Julien Stephan
@ 2024-11-01 15:36   ` Jonathan Cameron
  0 siblings, 0 replies; 36+ messages in thread
From: Jonathan Cameron @ 2024-11-01 15:36 UTC (permalink / raw)
  To: Julien Stephan
  Cc: Mudit Sharma, Lars-Peter Clausen, Anshul Dalal, Javier Carrasco,
	Jean-Baptiste Maneyrol, Michael Hennerich, Cosmin Tanislav,
	Ramona Gradinariu, Antoniu Miclaus, Dan Robertson,
	Marcelo Schmitt, Matteo Martelli, Anand Ashok Dumbre,
	Michal Simek, Mariel Tinaco, Jagath Jog J, Lorenzo Bianconi,
	Subhajit Ghosh, Kevin Tsai, Linus Walleij, Benson Leung,
	Guenter Roeck, linux-iio, linux-kernel, linux-arm-kernel,
	chrome-platform

On Thu, 31 Oct 2024 16:26:59 +0100
Julien Stephan <jstephan@baylibre.com> wrote:

> iio_ev_state_store is actually using kstrtobool to check user
> input, then gives the converted boolean value to the write_event_config
> callback.
> 
> Remove useless code in write_event_config callback.
> 
> Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Applied and pushed out as testing.  If anyone has time to review
I can still add tags (or pull the patches if there is something I missed!)

Thanks,

Jonathan

> ---
>  drivers/iio/proximity/irsd200.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/proximity/irsd200.c b/drivers/iio/proximity/irsd200.c
> index 6e96b764fed8b577d71c3146210679b0b61d4c38..fb0691da99ee621e19013a64d122f097e793efd9 100644
> --- a/drivers/iio/proximity/irsd200.c
> +++ b/drivers/iio/proximity/irsd200.c
> @@ -662,7 +662,7 @@ static int irsd200_write_event_config(struct iio_dev *indio_dev,
>  			return ret;
>  
>  		return regmap_field_write(
> -			data->regfields[IRS_REGF_INTR_COUNT_THR_OR], !!state);
> +			data->regfields[IRS_REGF_INTR_COUNT_THR_OR], state);
>  	default:
>  		return -EINVAL;
>  	}
> 



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v2 05/15] iio: proximity: sx9500: simplify code in write_event_config callback
  2024-10-31 15:27 ` [PATCH v2 05/15] iio: proximity: sx9500: " Julien Stephan
@ 2024-11-01 15:36   ` Jonathan Cameron
  0 siblings, 0 replies; 36+ messages in thread
From: Jonathan Cameron @ 2024-11-01 15:36 UTC (permalink / raw)
  To: Julien Stephan
  Cc: Mudit Sharma, Lars-Peter Clausen, Anshul Dalal, Javier Carrasco,
	Jean-Baptiste Maneyrol, Michael Hennerich, Cosmin Tanislav,
	Ramona Gradinariu, Antoniu Miclaus, Dan Robertson,
	Marcelo Schmitt, Matteo Martelli, Anand Ashok Dumbre,
	Michal Simek, Mariel Tinaco, Jagath Jog J, Lorenzo Bianconi,
	Subhajit Ghosh, Kevin Tsai, Linus Walleij, Benson Leung,
	Guenter Roeck, linux-iio, linux-kernel, linux-arm-kernel,
	chrome-platform

On Thu, 31 Oct 2024 16:27:00 +0100
Julien Stephan <jstephan@baylibre.com> wrote:

> iio_ev_state_store is actually using kstrtobool to check user
> input, then gives the converted boolean value to the write_event_config
> callback.
> 
> Remove useless code in write_event_config callback.
> 
> Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Applied and pushed out as testing. Still time for other reviews if anyone
cares to take a look.

Thanks,

Jonathan

> ---
>  drivers/iio/proximity/sx9500.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/iio/proximity/sx9500.c b/drivers/iio/proximity/sx9500.c
> index 3f4eace05cfc6a4679fe82854dc059aa4a710d6d..e3da709424d5b2bd4e746df7adc4a4969e62f2a6 100644
> --- a/drivers/iio/proximity/sx9500.c
> +++ b/drivers/iio/proximity/sx9500.c
> @@ -551,7 +551,7 @@ static int sx9500_write_event_config(struct iio_dev *indio_dev,
>  
>  	mutex_lock(&data->mutex);
>  
> -	if (state == 1) {
> +	if (state) {
>  		ret = sx9500_inc_chan_users(data, chan->channel);
>  		if (ret < 0)
>  			goto out_unlock;
> @@ -571,7 +571,7 @@ static int sx9500_write_event_config(struct iio_dev *indio_dev,
>  	goto out_unlock;
>  
>  out_undo_chan:
> -	if (state == 1)
> +	if (state)
>  		sx9500_dec_chan_users(data, chan->channel);
>  	else
>  		sx9500_inc_chan_users(data, chan->channel);
> 



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v2 06/15] iio: light: adux1020: write_event_config: use local variable for interrupt value
  2024-10-31 16:27   ` David Lechner
@ 2024-11-01 15:44     ` Jonathan Cameron
  2024-11-01 18:18       ` Julien Stephan
  0 siblings, 1 reply; 36+ messages in thread
From: Jonathan Cameron @ 2024-11-01 15:44 UTC (permalink / raw)
  To: David Lechner
  Cc: Julien Stephan, Mudit Sharma, Lars-Peter Clausen, Anshul Dalal,
	Javier Carrasco, Jean-Baptiste Maneyrol, Michael Hennerich,
	Cosmin Tanislav, Ramona Gradinariu, Antoniu Miclaus,
	Dan Robertson, Marcelo Schmitt, Matteo Martelli,
	Anand Ashok Dumbre, Michal Simek, Mariel Tinaco, Jagath Jog J,
	Lorenzo Bianconi, Subhajit Ghosh, Kevin Tsai, Linus Walleij,
	Benson Leung, Guenter Roeck, linux-iio, linux-kernel,
	linux-arm-kernel, chrome-platform

On Thu, 31 Oct 2024 11:27:45 -0500
David Lechner <dlechner@baylibre.com> wrote:

> On 10/31/24 10:27 AM, Julien Stephan wrote:
> > state parameter is currently an int, but it is actually a boolean.
> > iio_ev_state_store is actually using kstrtobool to check user input,
> > then gives the converted boolean value to write_event_config.  The code
> > in adux1020_write_event_config re-uses state parameter to store an
> > integer value. To prepare for updating the write_event_config signature
> > to use a boolean for state, introduce a new local int variable.
> > 
> > Signed-off-by: Julien Stephan <jstephan@baylibre.com>
> > ---
> >  drivers/iio/light/adux1020.c | 8 ++++----
> >  1 file changed, 4 insertions(+), 4 deletions(-)
> > 
> > diff --git a/drivers/iio/light/adux1020.c b/drivers/iio/light/adux1020.c
> > index 2e0170be077aef9aa194fab51afbb33aec02e513..db57d84da616b91add8c5d1aba08a73ce18c367e 100644
> > --- a/drivers/iio/light/adux1020.c
> > +++ b/drivers/iio/light/adux1020.c
> > @@ -505,7 +505,7 @@ static int adux1020_write_event_config(struct iio_dev *indio_dev,
> >  				       enum iio_event_direction dir, int state)
> >  {
> >  	struct adux1020_data *data = iio_priv(indio_dev);
> > -	int ret, mask;
> > +	int ret, mask, val;
> >  
> >  	mutex_lock(&data->lock);
> >  
> > @@ -526,12 +526,12 @@ static int adux1020_write_event_config(struct iio_dev *indio_dev,
> >  			mask = ADUX1020_PROX_OFF1_INT;
> >  
> >  		if (state)
> > -			state = 0;
> > +			val = 0;
> >  		else
> > -			state = mask;
> > +			val = mask;
> >  
> >  		ret = regmap_update_bits(data->regmap, ADUX1020_REG_INT_MASK,
> > -					 mask, state);
> > +					 mask, val);
> >  		if (ret < 0)
> >  			goto fail;
> >  
> >   
> 
> Instead of introducing `val`, I would rewrite this as:
> 
> 	if (state)
> 		ret = regmap_clear_bits(...);
> 	else
> 		ret = regmap_set_bits(...);
> 
Good idea.  Rather than go around again and potentially stall the end of this series.
I made that change whilst applying.  Shout if either of you doesn't
like the result. Diff doesn't do a perfect job on readability (it does
if I add a line break but then the code looks worse in the end!)

From 06a1ca816450d1b5524f6010581a83ab9935d51b Mon Sep 17 00:00:00 2001
From: Julien Stephan <jstephan@baylibre.com>
Date: Thu, 31 Oct 2024 16:27:01 +0100
Subject: [PATCH] iio: light: adux1020: write_event_config: use local variable
 for interrupt value

state parameter is currently an int, but it is actually a boolean.
iio_ev_state_store is actually using kstrtobool to check user input,
then gives the converted boolean value to write_event_config.  The code
in adux1020_write_event_config re-uses state parameter to store an
integer value. To prepare for updating the write_event_config signature
to use a boolean for state, introduce a new local int variable.

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Link: https://patch.msgid.link/20241031-iio-fix-write-event-config-signature-v2-6-2bcacbb517a2@baylibre.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
---
 drivers/iio/light/adux1020.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/drivers/iio/light/adux1020.c b/drivers/iio/light/adux1020.c
index 2e0170be077a..06d5bc1d246c 100644
--- a/drivers/iio/light/adux1020.c
+++ b/drivers/iio/light/adux1020.c
@@ -526,12 +526,11 @@ static int adux1020_write_event_config(struct iio_dev *indio_dev,
 			mask = ADUX1020_PROX_OFF1_INT;
 
 		if (state)
-			state = 0;
+			ret = regmap_clear_bits(data->regmap,
+						ADUX1020_REG_INT_MASK, mask);
 		else
-			state = mask;
-
-		ret = regmap_update_bits(data->regmap, ADUX1020_REG_INT_MASK,
-					 mask, state);
+			ret = regmap_set_bits(data->regmap,
+					      ADUX1020_REG_INT_MASK, mask);
 		if (ret < 0)
 			goto fail;
 
-- 
2.46.2



> 
> 



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* Re: [PATCH v2 07/15] iio: fix write_event_config signature
  2024-10-31 15:27 ` [PATCH v2 07/15] iio: fix write_event_config signature Julien Stephan
@ 2024-11-01 16:32   ` Jonathan Cameron
  0 siblings, 0 replies; 36+ messages in thread
From: Jonathan Cameron @ 2024-11-01 16:32 UTC (permalink / raw)
  To: Julien Stephan
  Cc: Mudit Sharma, Lars-Peter Clausen, Anshul Dalal, Javier Carrasco,
	Jean-Baptiste Maneyrol, Michael Hennerich, Cosmin Tanislav,
	Ramona Gradinariu, Antoniu Miclaus, Dan Robertson,
	Marcelo Schmitt, Matteo Martelli, Anand Ashok Dumbre,
	Michal Simek, Mariel Tinaco, Jagath Jog J, Lorenzo Bianconi,
	Subhajit Ghosh, Kevin Tsai, Linus Walleij, Benson Leung,
	Guenter Roeck, linux-iio, linux-kernel, linux-arm-kernel,
	chrome-platform, Julia Lawall

On Thu, 31 Oct 2024 16:27:02 +0100
Julien Stephan <jstephan@baylibre.com> wrote:

> write_event_config callback use an int for state, but it is actually a
> boolean. iio_ev_state_store is actually using kstrtobool to check user
> input, then gives the converted boolean value to write_event_config.
> 
> Fix signature and update all iio drivers to use the new signature.
> 
> This patch has been partially written using coccinelle with the
> following script:
> 
> $ cat iio-bool.cocci
> // Options: --all-includes
> 
> virtual patch
> 
> @c1@
> identifier iioinfo;
> identifier wecfunc;
> @@
>  static const struct iio_info iioinfo = {
>         ...,
>         .write_event_config =
> (
>  wecfunc
> |
>  &wecfunc
> ),
>         ...,
>  };
> 
> @@
> identifier c1.wecfunc;
> identifier indio_dev, chan, type, dir, state;
> @@
>  int wecfunc(struct iio_dev *indio_dev, const struct iio_chan_spec *chan, enum iio_event_type type, enum iio_event_direction dir,
> -int
> +bool
>  state) {
>   ...
>  }
> 
> make coccicheck MODE=patch COCCI=iio-bool.cocci M=drivers/iio
> 
> Unfortunately, this script didn't match all files:
> * all write_event_config callbacks using iio_device_claim_direct_scoped
>   were not detected and not patched.
> * all files that do not assign and declare the write_event_config
>   callback in the same file.
> 
> iio.h was also manually updated.
> 
> The patch was build tested using allmodconfig config.
> 
> cc: Julia Lawall <julia.lawall@inria.fr>
> Signed-off-by: Julien Stephan <jstephan@baylibre.com>

Hi Julien,

I went through these by hand.  There are somewhere maybe it is worth
passing booleans down into leaf functions and only convert to int
right at the end (for a field write) but I don't think we care.
The cases here are more of the variety of converting a bool to an int
to use it as a bool (like the ones you clear up later in this series).

Neither is wrong, just inefficient, so applied and pushed out as testing
for 0-day to take a look.
Fingers crossed nothing got missed!

Jonathan

> diff --git a/drivers/iio/accel/fxls8962af-core.c b/drivers/iio/accel/fxls8962af-core.c
> index ab427f3461dbbef535c2ec2cf2982202ca97bb82..f07fba17048e7b5c1958807b14d4bcb3ff87e26d 100644
> --- a/drivers/iio/accel/fxls8962af-core.c
> +++ b/drivers/iio/accel/fxls8962af-core.c
> @@ -617,7 +617,7 @@ static int
>  fxls8962af_write_event_config(struct iio_dev *indio_dev,
>  			      const struct iio_chan_spec *chan,
>  			      enum iio_event_type type,
> -			      enum iio_event_direction dir, int state)
> +			      enum iio_event_direction dir, bool state)
>  {
>  	struct fxls8962af_data *data = iio_priv(indio_dev);
>  	u8 enable_event, enable_bits;
This passes the state variable into fxls8962af_event_setup() as an integer
and uses it as a boolean.  Might as well be bool all the way.


> diff --git a/drivers/iio/light/gp2ap020a00f.c b/drivers/iio/light/gp2ap020a00f.c
> index 81e718cdeae32d60581cb490148f4f1c0bd695c7..1a352c88598e5d701256aa8659a7f9683bce56f9 100644
> --- a/drivers/iio/light/gp2ap020a00f.c
> +++ b/drivers/iio/light/gp2ap020a00f.c
> @@ -1159,7 +1159,7 @@ static int gp2ap020a00f_write_event_config(struct iio_dev *indio_dev,
>  					   const struct iio_chan_spec *chan,
>  					   enum iio_event_type type,
>  					   enum iio_event_direction dir,
> -					   int state)
> +					   bool state)
This one could do with a follow up as the state variable is passed as an integer
to another function that then uses it as a bool.

>  {
>  	struct gp2ap020a00f_data *data = iio_priv(indio_dev);
>  	enum gp2ap020a00f_cmd cmd;


^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v2 08/15] iio: accel: mma9551: use bool for event state
  2024-10-31 15:27 ` [PATCH v2 08/15] iio: accel: mma9551: use bool for event state Julien Stephan
@ 2024-11-01 16:33   ` Jonathan Cameron
  0 siblings, 0 replies; 36+ messages in thread
From: Jonathan Cameron @ 2024-11-01 16:33 UTC (permalink / raw)
  To: Julien Stephan
  Cc: Mudit Sharma, Lars-Peter Clausen, Anshul Dalal, Javier Carrasco,
	Jean-Baptiste Maneyrol, Michael Hennerich, Cosmin Tanislav,
	Ramona Gradinariu, Antoniu Miclaus, Dan Robertson,
	Marcelo Schmitt, Matteo Martelli, Anand Ashok Dumbre,
	Michal Simek, Mariel Tinaco, Jagath Jog J, Lorenzo Bianconi,
	Subhajit Ghosh, Kevin Tsai, Linus Walleij, Benson Leung,
	Guenter Roeck, linux-iio, linux-kernel, linux-arm-kernel,
	chrome-platform

On Thu, 31 Oct 2024 16:27:03 +0100
Julien Stephan <jstephan@baylibre.com> wrote:

> Since the write_event_config callback now uses a bool for the state
> parameter, update the signature of the function it calls accordingly,
> and use a bool array for event_enabled.
> 
> Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Applied.
> ---
>  drivers/iio/accel/mma9551.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/iio/accel/mma9551.c b/drivers/iio/accel/mma9551.c
> index 605022f5239a6412827f4ba059aa18d490908720..6d73eec951263956f314f82542becbbae933de91 100644
> --- a/drivers/iio/accel/mma9551.c
> +++ b/drivers/iio/accel/mma9551.c
> @@ -45,7 +45,7 @@ enum mma9551_tilt_axis {
>  struct mma9551_data {
>  	struct i2c_client *client;
>  	struct mutex mutex;
> -	int event_enabled[3];
> +	bool event_enabled[3];
>  	int irqs[MMA9551_GPIO_COUNT];
>  };
>  
> @@ -162,7 +162,7 @@ static int mma9551_read_event_config(struct iio_dev *indio_dev,
>  
>  static int mma9551_config_incli_event(struct iio_dev *indio_dev,
>  				      enum iio_modifier axis,
> -				      int state)
> +				      bool state)
>  {
>  	struct mma9551_data *data = iio_priv(indio_dev);
>  	enum mma9551_tilt_axis mma_axis;
> @@ -174,7 +174,7 @@ static int mma9551_config_incli_event(struct iio_dev *indio_dev,
>  	if (data->event_enabled[mma_axis] == state)
>  		return 0;
>  
> -	if (state == 0) {
> +	if (!state) {
>  		ret = mma9551_gpio_config(data->client,
>  					  (enum mma9551_gpio_pin)mma_axis,
>  					  MMA9551_APPID_NONE, 0, 0);
> 



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v2 09/15] iio: accel: sca3000: use bool for event state
  2024-10-31 15:27 ` [PATCH v2 09/15] iio: accel: sca3000: " Julien Stephan
@ 2024-11-01 16:34   ` Jonathan Cameron
  0 siblings, 0 replies; 36+ messages in thread
From: Jonathan Cameron @ 2024-11-01 16:34 UTC (permalink / raw)
  To: Julien Stephan
  Cc: Mudit Sharma, Lars-Peter Clausen, Anshul Dalal, Javier Carrasco,
	Jean-Baptiste Maneyrol, Michael Hennerich, Cosmin Tanislav,
	Ramona Gradinariu, Antoniu Miclaus, Dan Robertson,
	Marcelo Schmitt, Matteo Martelli, Anand Ashok Dumbre,
	Michal Simek, Mariel Tinaco, Jagath Jog J, Lorenzo Bianconi,
	Subhajit Ghosh, Kevin Tsai, Linus Walleij, Benson Leung,
	Guenter Roeck, linux-iio, linux-kernel, linux-arm-kernel,
	chrome-platform

On Thu, 31 Oct 2024 16:27:04 +0100
Julien Stephan <jstephan@baylibre.com> wrote:

> Since the write_event_config callback now uses a bool for the state
> parameter, update the signatures of the functions it calls accordingly.
> 
> Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Applied
> ---
>  drivers/iio/accel/sca3000.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/iio/accel/sca3000.c b/drivers/iio/accel/sca3000.c
> index 36cbfcbba04d6920ba68bebd70d21bc3898a044d..3fb0f386c3db603714a746c28be36ee78d1b2a6a 100644
> --- a/drivers/iio/accel/sca3000.c
> +++ b/drivers/iio/accel/sca3000.c
> @@ -1158,7 +1158,7 @@ static int sca3000_read_event_config(struct iio_dev *indio_dev,
>  	return ret;
>  }
>  
> -static int sca3000_freefall_set_state(struct iio_dev *indio_dev, int state)
> +static int sca3000_freefall_set_state(struct iio_dev *indio_dev, bool state)
>  {
>  	struct sca3000_state *st = iio_priv(indio_dev);
>  	int ret;
> @@ -1181,7 +1181,7 @@ static int sca3000_freefall_set_state(struct iio_dev *indio_dev, int state)
>  }
>  
>  static int sca3000_motion_detect_set_state(struct iio_dev *indio_dev, int axis,
> -					   int state)
> +					   bool state)
>  {
>  	struct sca3000_state *st = iio_priv(indio_dev);
>  	int ret, ctrlval;
> 



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v2 10/15] iio: imu: bmi323: use bool for event state
  2024-10-31 15:27 ` [PATCH v2 10/15] iio: imu: bmi323: " Julien Stephan
@ 2024-11-01 16:35   ` Jonathan Cameron
  0 siblings, 0 replies; 36+ messages in thread
From: Jonathan Cameron @ 2024-11-01 16:35 UTC (permalink / raw)
  To: Julien Stephan
  Cc: Mudit Sharma, Lars-Peter Clausen, Anshul Dalal, Javier Carrasco,
	Jean-Baptiste Maneyrol, Michael Hennerich, Cosmin Tanislav,
	Ramona Gradinariu, Antoniu Miclaus, Dan Robertson,
	Marcelo Schmitt, Matteo Martelli, Anand Ashok Dumbre,
	Michal Simek, Mariel Tinaco, Jagath Jog J, Lorenzo Bianconi,
	Subhajit Ghosh, Kevin Tsai, Linus Walleij, Benson Leung,
	Guenter Roeck, linux-iio, linux-kernel, linux-arm-kernel,
	chrome-platform

On Thu, 31 Oct 2024 16:27:05 +0100
Julien Stephan <jstephan@baylibre.com> wrote:

> Since the write_event_config callback now uses a bool for the state
> parameter, update the signatures of the functions it calls accordingly.
> 
> Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Applied.
> ---
>  drivers/iio/imu/bmi323/bmi323_core.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/iio/imu/bmi323/bmi323_core.c b/drivers/iio/imu/bmi323/bmi323_core.c
> index 76a88e1ccc1d89988eb52d6b1be8da0f5005f0e6..161bb1d2e761688dd740635f8a2830e9562d1b59 100644
> --- a/drivers/iio/imu/bmi323/bmi323_core.c
> +++ b/drivers/iio/imu/bmi323/bmi323_core.c
> @@ -467,7 +467,7 @@ static int bmi323_feature_engine_events(struct bmi323_data *data,
>  			    BMI323_FEAT_IO_STATUS_MSK);
>  }
>  
> -static int bmi323_step_wtrmrk_en(struct bmi323_data *data, int state)
> +static int bmi323_step_wtrmrk_en(struct bmi323_data *data, bool state)
>  {
>  	enum bmi323_irq_pin step_irq;
>  	int ret;
> @@ -484,7 +484,7 @@ static int bmi323_step_wtrmrk_en(struct bmi323_data *data, int state)
>  	ret = bmi323_update_ext_reg(data, BMI323_STEP_SC1_REG,
>  				    BMI323_STEP_SC1_WTRMRK_MSK,
>  				    FIELD_PREP(BMI323_STEP_SC1_WTRMRK_MSK,
> -					       state ? 1 : 0));
> +					       state));
>  	if (ret)
>  		return ret;
>  
> @@ -506,7 +506,7 @@ static int bmi323_motion_config_reg(enum iio_event_direction dir)
>  }
>  
>  static int bmi323_motion_event_en(struct bmi323_data *data,
> -				  enum iio_event_direction dir, int state)
> +				  enum iio_event_direction dir, bool state)
>  {
>  	unsigned int state_value = state ? BMI323_FEAT_XYZ_MSK : 0;
>  	int config, ret, msk, raw, field_value;
> @@ -570,7 +570,7 @@ static int bmi323_motion_event_en(struct bmi323_data *data,
>  }
>  
>  static int bmi323_tap_event_en(struct bmi323_data *data,
> -			       enum iio_event_direction dir, int state)
> +			       enum iio_event_direction dir, bool state)
>  {
>  	enum bmi323_irq_pin tap_irq;
>  	int ret, tap_enabled;
> 



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v2 11/15] iio: imu: st_lsm6dsx: use bool for event state
  2024-10-31 15:27 ` [PATCH v2 11/15] iio: imu: st_lsm6dsx: " Julien Stephan
@ 2024-11-01 16:36   ` Jonathan Cameron
  0 siblings, 0 replies; 36+ messages in thread
From: Jonathan Cameron @ 2024-11-01 16:36 UTC (permalink / raw)
  To: Julien Stephan
  Cc: Mudit Sharma, Lars-Peter Clausen, Anshul Dalal, Javier Carrasco,
	Jean-Baptiste Maneyrol, Michael Hennerich, Cosmin Tanislav,
	Ramona Gradinariu, Antoniu Miclaus, Dan Robertson,
	Marcelo Schmitt, Matteo Martelli, Anand Ashok Dumbre,
	Michal Simek, Mariel Tinaco, Jagath Jog J, Lorenzo Bianconi,
	Subhajit Ghosh, Kevin Tsai, Linus Walleij, Benson Leung,
	Guenter Roeck, linux-iio, linux-kernel, linux-arm-kernel,
	chrome-platform

On Thu, 31 Oct 2024 16:27:06 +0100
Julien Stephan <jstephan@baylibre.com> wrote:

> Since the write_event_config callback now uses a bool for the state
> parameter, update the signature of the function it calls accordingly.
> 
> Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Applied.
> ---
>  drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
> index caefa15e559b8808051ff1c7f82c3f36c947933c..509e0169dcd54e773540c4e3f1b56e5b737f80c3 100644
> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
> @@ -1865,7 +1865,7 @@ static int st_lsm6dsx_write_raw(struct iio_dev *iio_dev,
>  	return err;
>  }
>  
> -static int st_lsm6dsx_event_setup(struct st_lsm6dsx_hw *hw, int state)
> +static int st_lsm6dsx_event_setup(struct st_lsm6dsx_hw *hw, bool state)
>  {
>  	const struct st_lsm6dsx_reg *reg;
>  	unsigned int data;
> 



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v2 12/15] iio: light: apds9300: use bool for event state
  2024-10-31 15:27 ` [PATCH v2 12/15] iio: light: apds9300: " Julien Stephan
@ 2024-11-01 16:40   ` Jonathan Cameron
  0 siblings, 0 replies; 36+ messages in thread
From: Jonathan Cameron @ 2024-11-01 16:40 UTC (permalink / raw)
  To: Julien Stephan
  Cc: Mudit Sharma, Lars-Peter Clausen, Anshul Dalal, Javier Carrasco,
	Jean-Baptiste Maneyrol, Michael Hennerich, Cosmin Tanislav,
	Ramona Gradinariu, Antoniu Miclaus, Dan Robertson,
	Marcelo Schmitt, Matteo Martelli, Anand Ashok Dumbre,
	Michal Simek, Mariel Tinaco, Jagath Jog J, Lorenzo Bianconi,
	Subhajit Ghosh, Kevin Tsai, Linus Walleij, Benson Leung,
	Guenter Roeck, linux-iio, linux-kernel, linux-arm-kernel,
	chrome-platform

On Thu, 31 Oct 2024 16:27:07 +0100
Julien Stephan <jstephan@baylibre.com> wrote:

> Since the write_event_config callback now uses a bool for the state
> parameter, update apds9300_set_intr_state accordingly and change intr_en
> to bool.
> 
> Also update apds9300_set_power_state and power_state for consistency.
> 
> Signed-off-by: Julien Stephan <jstephan@baylibre.com>
> ---
>  drivers/iio/light/apds9300.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/iio/light/apds9300.c b/drivers/iio/light/apds9300.c
> index 95861b2a5b2d94011d894959289c5c4f06cc1efe..98bdf8bc298b664aba71d3c38d7f224808e5997d 100644
> --- a/drivers/iio/light/apds9300.c
> +++ b/drivers/iio/light/apds9300.c
> @@ -46,10 +46,10 @@
>  struct apds9300_data {
>  	struct i2c_client *client;
>  	struct mutex mutex;
> -	int power_state;
> +	bool power_state;
>  	int thresh_low;
>  	int thresh_hi;
> -	int intr_en;
> +	bool intr_en;
>  };
>  
>  /* Lux calculation */
> @@ -148,7 +148,7 @@ static int apds9300_set_thresh_hi(struct apds9300_data *data, int value)
>  	return 0;
>  }
>  
> -static int apds9300_set_intr_state(struct apds9300_data *data, int state)
> +static int apds9300_set_intr_state(struct apds9300_data *data, bool state)
>  {
>  	int ret;
>  	u8 cmd;
> @@ -169,7 +169,7 @@ static int apds9300_set_intr_state(struct apds9300_data *data, int state)
>  	return 0;
>  }
>  
> -static int apds9300_set_power_state(struct apds9300_data *data, int state)
> +static int apds9300_set_power_state(struct apds9300_data *data, bool state)
There are a few calls of this where an explicit 1 or 0 is used. Those should be
updated to be bools.

I added this diff whilst applying.  Shout if you disagree with it.

diff --git a/drivers/iio/light/apds9300.c b/drivers/iio/light/apds9300.c
index 98bdf8bc298b..938d76f7e312 100644
--- a/drivers/iio/light/apds9300.c
+++ b/drivers/iio/light/apds9300.c
@@ -221,7 +221,7 @@ static int apds9300_chip_init(struct apds9300_data *data)
         * Disable interrupt to ensure thai it is doesn't enable
         * i.e. after device soft reset
         */
-       ret = apds9300_set_intr_state(data, 0);
+       ret = apds9300_set_intr_state(data, false);
        if (ret < 0)
                goto err;
 
@@ -459,8 +459,8 @@ static void apds9300_remove(struct i2c_client *client)
        iio_device_unregister(indio_dev);
 
        /* Ensure that power off and interrupts are disabled */
-       apds9300_set_intr_state(data, 0);
-       apds9300_set_power_state(data, 0);
+       apds9300_set_intr_state(data, false);
+       apds9300_set_power_state(data, false);
 }
 
 static int apds9300_suspend(struct device *dev)
@@ -470,7 +470,7 @@ static int apds9300_suspend(struct device *dev)
        int ret;
 
        mutex_lock(&data->mutex);
-       ret = apds9300_set_power_state(data, 0);
+       ret = apds9300_set_power_state(data, false);
        mutex_unlock(&data->mutex);
 
        return ret;
@@ -483,7 +483,7 @@ static int apds9300_resume(struct device *dev)
        int ret;
 
        mutex_lock(&data->mutex);
-       ret = apds9300_set_power_state(data, 1);
+       ret = apds9300_set_power_state(data, true);
        mutex_unlock(&data->mutex);
 
        return ret;



>  {
>  	int ret;
>  	u8 cmd;
> 



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* Re: [PATCH v2 13/15] iio: light: apds9306: simplifies if branch in apds9306_write_event_config
  2024-10-31 15:27 ` [PATCH v2 13/15] iio: light: apds9306: simplifies if branch in apds9306_write_event_config Julien Stephan
@ 2024-11-01 16:41   ` Jonathan Cameron
  2024-11-02 13:21     ` Subhajit Ghosh
  0 siblings, 1 reply; 36+ messages in thread
From: Jonathan Cameron @ 2024-11-01 16:41 UTC (permalink / raw)
  To: Julien Stephan
  Cc: Mudit Sharma, Lars-Peter Clausen, Anshul Dalal, Javier Carrasco,
	Jean-Baptiste Maneyrol, Michael Hennerich, Cosmin Tanislav,
	Ramona Gradinariu, Antoniu Miclaus, Dan Robertson,
	Marcelo Schmitt, Matteo Martelli, Anand Ashok Dumbre,
	Michal Simek, Mariel Tinaco, Jagath Jog J, Lorenzo Bianconi,
	Subhajit Ghosh, Kevin Tsai, Linus Walleij, Benson Leung,
	Guenter Roeck, linux-iio, linux-kernel, linux-arm-kernel,
	chrome-platform

On Thu, 31 Oct 2024 16:27:08 +0100
Julien Stephan <jstephan@baylibre.com> wrote:

> Simplifies the regmap_wite if branch in apds9306_write_event_config.
Applied.
> 
> Signed-off-by: Julien Stephan <jstephan@baylibre.com>
> ---
>  drivers/iio/light/apds9306.c | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
> 
> diff --git a/drivers/iio/light/apds9306.c b/drivers/iio/light/apds9306.c
> index 8adc74040db2bddf93fbb773e3519abcc726b9a6..9c08e7c3ad0c17519689a630d42fe9b90438dfe8 100644
> --- a/drivers/iio/light/apds9306.c
> +++ b/drivers/iio/light/apds9306.c
> @@ -1125,10 +1125,7 @@ static int apds9306_write_event_config(struct iio_dev *indio_dev,
>  		}
>  	}
>  	case IIO_EV_TYPE_THRESH_ADAPTIVE:
> -		if (state)
> -			return regmap_field_write(rf->int_thresh_var_en, 1);
> -		else
> -			return regmap_field_write(rf->int_thresh_var_en, 0);
> +		return regmap_field_write(rf->int_thresh_var_en, state);
>  	default:
>  		return -EINVAL;
>  	}
> 



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v2 14/15] iio: light: apds9960: convert als_int and pxs_int to bool
  2024-10-31 15:27 ` [PATCH v2 14/15] iio: light: apds9960: convert als_int and pxs_int to bool Julien Stephan
@ 2024-11-01 16:42   ` Jonathan Cameron
  0 siblings, 0 replies; 36+ messages in thread
From: Jonathan Cameron @ 2024-11-01 16:42 UTC (permalink / raw)
  To: Julien Stephan
  Cc: Mudit Sharma, Lars-Peter Clausen, Anshul Dalal, Javier Carrasco,
	Jean-Baptiste Maneyrol, Michael Hennerich, Cosmin Tanislav,
	Ramona Gradinariu, Antoniu Miclaus, Dan Robertson,
	Marcelo Schmitt, Matteo Martelli, Anand Ashok Dumbre,
	Michal Simek, Mariel Tinaco, Jagath Jog J, Lorenzo Bianconi,
	Subhajit Ghosh, Kevin Tsai, Linus Walleij, Benson Leung,
	Guenter Roeck, linux-iio, linux-kernel, linux-arm-kernel,
	chrome-platform

On Thu, 31 Oct 2024 16:27:09 +0100
Julien Stephan <jstephan@baylibre.com> wrote:

> Since the write_event_config callback now uses a bool for the state
> parameter, update type of als_int and pxs_int to bool.
Applied.
> 
> Signed-off-by: Julien Stephan <jstephan@baylibre.com>
> ---
>  drivers/iio/light/apds9960.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/iio/light/apds9960.c b/drivers/iio/light/apds9960.c
> index a7f0cc99f236685900f89fbc48de3be0e9a40704..7b3da88885693c488807da459ceaa1cbb3881bcd 100644
> --- a/drivers/iio/light/apds9960.c
> +++ b/drivers/iio/light/apds9960.c
> @@ -133,8 +133,8 @@ struct apds9960_data {
>  	struct regmap_field *reg_enable_pxs;
>  
>  	/* state */
> -	int als_int;
> -	int pxs_int;
> +	bool als_int;
> +	bool pxs_int;
>  	int gesture_mode_running;
>  
>  	/* gain values */
> 



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v2 15/15] iio: light: apds9960: remove useless return
  2024-10-31 15:27 ` [PATCH v2 15/15] iio: light: apds9960: remove useless return Julien Stephan
@ 2024-11-01 16:44   ` Jonathan Cameron
  0 siblings, 0 replies; 36+ messages in thread
From: Jonathan Cameron @ 2024-11-01 16:44 UTC (permalink / raw)
  To: Julien Stephan
  Cc: Mudit Sharma, Lars-Peter Clausen, Anshul Dalal, Javier Carrasco,
	Jean-Baptiste Maneyrol, Michael Hennerich, Cosmin Tanislav,
	Ramona Gradinariu, Antoniu Miclaus, Dan Robertson,
	Marcelo Schmitt, Matteo Martelli, Anand Ashok Dumbre,
	Michal Simek, Mariel Tinaco, Jagath Jog J, Lorenzo Bianconi,
	Subhajit Ghosh, Kevin Tsai, Linus Walleij, Benson Leung,
	Guenter Roeck, linux-iio, linux-kernel, linux-arm-kernel,
	chrome-platform

On Thu, 31 Oct 2024 16:27:10 +0100
Julien Stephan <jstephan@baylibre.com> wrote:

> return 0 statement at the end of apds9960_read_event_config is useless.
> Remove it.
Strange that never triggered a build warning that I noticed.

Anyhow applied.  

So I did end up more or less (i.e. with tweaks) applying the whole series.
If you have time to follow up on the few cases I spotted where passing the
bool value into functions instead of an int may make for better
readability.

> 
> Signed-off-by: Julien Stephan <jstephan@baylibre.com>
> ---
>  drivers/iio/light/apds9960.c | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/drivers/iio/light/apds9960.c b/drivers/iio/light/apds9960.c
> index 7b3da88885693c488807da459ceaa1cbb3881bcd..d30441d3370309fce9d6c717d42b829ff1db3174 100644
> --- a/drivers/iio/light/apds9960.c
> +++ b/drivers/iio/light/apds9960.c
> @@ -749,8 +749,6 @@ static int apds9960_read_event_config(struct iio_dev *indio_dev,
>  	default:
>  		return -EINVAL;
>  	}
> -
> -	return 0;
>  }
>  
>  static int apds9960_write_event_config(struct iio_dev *indio_dev,
> 



^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v2 06/15] iio: light: adux1020: write_event_config: use local variable for interrupt value
  2024-11-01 15:44     ` Jonathan Cameron
@ 2024-11-01 18:18       ` Julien Stephan
  0 siblings, 0 replies; 36+ messages in thread
From: Julien Stephan @ 2024-11-01 18:18 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: David Lechner, Mudit Sharma, Lars-Peter Clausen, Anshul Dalal,
	Javier Carrasco, Jean-Baptiste Maneyrol, Michael Hennerich,
	Cosmin Tanislav, Ramona Gradinariu, Antoniu Miclaus,
	Dan Robertson, Marcelo Schmitt, Matteo Martelli,
	Anand Ashok Dumbre, Michal Simek, Mariel Tinaco, Jagath Jog J,
	Lorenzo Bianconi, Subhajit Ghosh, Kevin Tsai, Linus Walleij,
	Benson Leung, Guenter Roeck, linux-iio, linux-kernel,
	linux-arm-kernel, chrome-platform

Le ven. 1 nov. 2024 à 16:45, Jonathan Cameron <jic23@kernel.org> a écrit :
>
> On Thu, 31 Oct 2024 11:27:45 -0500
> David Lechner <dlechner@baylibre.com> wrote:
>
> > On 10/31/24 10:27 AM, Julien Stephan wrote:
> > > state parameter is currently an int, but it is actually a boolean.
> > > iio_ev_state_store is actually using kstrtobool to check user input,
> > > then gives the converted boolean value to write_event_config.  The code
> > > in adux1020_write_event_config re-uses state parameter to store an
> > > integer value. To prepare for updating the write_event_config signature
> > > to use a boolean for state, introduce a new local int variable.
> > >
> > > Signed-off-by: Julien Stephan <jstephan@baylibre.com>
> > > ---
> > >  drivers/iio/light/adux1020.c | 8 ++++----
> > >  1 file changed, 4 insertions(+), 4 deletions(-)
> > >
> > > diff --git a/drivers/iio/light/adux1020.c b/drivers/iio/light/adux1020.c
> > > index 2e0170be077aef9aa194fab51afbb33aec02e513..db57d84da616b91add8c5d1aba08a73ce18c367e 100644
> > > --- a/drivers/iio/light/adux1020.c
> > > +++ b/drivers/iio/light/adux1020.c
> > > @@ -505,7 +505,7 @@ static int adux1020_write_event_config(struct iio_dev *indio_dev,
> > >                                    enum iio_event_direction dir, int state)
> > >  {
> > >     struct adux1020_data *data = iio_priv(indio_dev);
> > > -   int ret, mask;
> > > +   int ret, mask, val;
> > >
> > >     mutex_lock(&data->lock);
> > >
> > > @@ -526,12 +526,12 @@ static int adux1020_write_event_config(struct iio_dev *indio_dev,
> > >                     mask = ADUX1020_PROX_OFF1_INT;
> > >
> > >             if (state)
> > > -                   state = 0;
> > > +                   val = 0;
> > >             else
> > > -                   state = mask;
> > > +                   val = mask;
> > >
> > >             ret = regmap_update_bits(data->regmap, ADUX1020_REG_INT_MASK,
> > > -                                    mask, state);
> > > +                                    mask, val);
> > >             if (ret < 0)
> > >                     goto fail;
> > >
> > >
> >
> > Instead of introducing `val`, I would rewrite this as:
> >
> >       if (state)
> >               ret = regmap_clear_bits(...);
> >       else
> >               ret = regmap_set_bits(...);
> >
> Good idea.  Rather than go around again and potentially stall the end of this series.
> I made that change whilst applying.  Shout if either of you doesn't
> like the result. Diff doesn't do a perfect job on readability (it does
> if I add a line break but then the code looks worse in the end!)
>

Hello Jonathan,

Looks fine to me. Thank you for doing the change yourself.

Cheers
Julien
> From 06a1ca816450d1b5524f6010581a83ab9935d51b Mon Sep 17 00:00:00 2001
> From: Julien Stephan <jstephan@baylibre.com>
> Date: Thu, 31 Oct 2024 16:27:01 +0100
> Subject: [PATCH] iio: light: adux1020: write_event_config: use local variable
>  for interrupt value
>
> state parameter is currently an int, but it is actually a boolean.
> iio_ev_state_store is actually using kstrtobool to check user input,
> then gives the converted boolean value to write_event_config.  The code
> in adux1020_write_event_config re-uses state parameter to store an
> integer value. To prepare for updating the write_event_config signature
> to use a boolean for state, introduce a new local int variable.
>
> Signed-off-by: Julien Stephan <jstephan@baylibre.com>
> Link: https://patch.msgid.link/20241031-iio-fix-write-event-config-signature-v2-6-2bcacbb517a2@baylibre.com
> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> ---
>  drivers/iio/light/adux1020.c | 9 ++++-----
>  1 file changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/iio/light/adux1020.c b/drivers/iio/light/adux1020.c
> index 2e0170be077a..06d5bc1d246c 100644
> --- a/drivers/iio/light/adux1020.c
> +++ b/drivers/iio/light/adux1020.c
> @@ -526,12 +526,11 @@ static int adux1020_write_event_config(struct iio_dev *indio_dev,
>                         mask = ADUX1020_PROX_OFF1_INT;
>
>                 if (state)
> -                       state = 0;
> +                       ret = regmap_clear_bits(data->regmap,
> +                                               ADUX1020_REG_INT_MASK, mask);
>                 else
> -                       state = mask;
> -
> -               ret = regmap_update_bits(data->regmap, ADUX1020_REG_INT_MASK,
> -                                        mask, state);
> +                       ret = regmap_set_bits(data->regmap,
> +                                             ADUX1020_REG_INT_MASK, mask);
>                 if (ret < 0)
>                         goto fail;
>
> --
> 2.46.2
>
>
>
> >
> >
>


^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v2 13/15] iio: light: apds9306: simplifies if branch in apds9306_write_event_config
  2024-11-01 16:41   ` Jonathan Cameron
@ 2024-11-02 13:21     ` Subhajit Ghosh
  2024-11-02 14:29       ` Julien Stephan
  0 siblings, 1 reply; 36+ messages in thread
From: Subhajit Ghosh @ 2024-11-02 13:21 UTC (permalink / raw)
  To: Jonathan Cameron, Julien Stephan
  Cc: Mudit Sharma, Lars-Peter Clausen, Anshul Dalal, Javier Carrasco,
	Jean-Baptiste Maneyrol, Michael Hennerich, Cosmin Tanislav,
	Ramona Gradinariu, Antoniu Miclaus, Dan Robertson,
	Marcelo Schmitt, Matteo Martelli, Anand Ashok Dumbre,
	Michal Simek, Mariel Tinaco, Jagath Jog J, Lorenzo Bianconi,
	Kevin Tsai, Linus Walleij, Benson Leung, Guenter Roeck, linux-iio,
	linux-kernel, linux-arm-kernel, chrome-platform

On 2/11/24 03:11, Jonathan Cameron wrote:
> On Thu, 31 Oct 2024 16:27:08 +0100
> Julien Stephan <jstephan@baylibre.com> wrote:
> 
>> Simplifies the regmap_wite if branch in apds9306_write_event_config.
> Applied.
>>
>> Signed-off-by: Julien Stephan <jstephan@baylibre.com>
>> ---
>>   drivers/iio/light/apds9306.c | 5 +----
>>   1 file changed, 1 insertion(+), 4 deletions(-)
>>
>> diff --git a/drivers/iio/light/apds9306.c b/drivers/iio/light/apds9306.c
>> index 8adc74040db2bddf93fbb773e3519abcc726b9a6..9c08e7c3ad0c17519689a630d42fe9b90438dfe8 100644
>> --- a/drivers/iio/light/apds9306.c
>> +++ b/drivers/iio/light/apds9306.c
>> @@ -1125,10 +1125,7 @@ static int apds9306_write_event_config(struct iio_dev *indio_dev,
>>   		}
>>   	}
>>   	case IIO_EV_TYPE_THRESH_ADAPTIVE:
>> -		if (state)
>> -			return regmap_field_write(rf->int_thresh_var_en, 1);
>> -		else
>> -			return regmap_field_write(rf->int_thresh_var_en, 0);
>> +		return regmap_field_write(rf->int_thresh_var_en, state);
>>   	default:
>>   		return -EINVAL;
>>   	}
>>
> 
Hi Julien,
Sorry for the delay.
"int_thresh_var_en" corresponds to APDS9306_INT_CFG_REG bit 3 (Datasheet: INT_CFG, Address: 0x19) which
is a single bit value only. If user does "echo 4 > /sys/bus/iio/devices/iio:device0/events/thresh_adaptive_either_en",
which trickles down to the "state" variable, do we really want to write any other value except "0" or "1"?
Correct me if I am wrong here.
Regards,
Subhajit Ghosh


^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v2 13/15] iio: light: apds9306: simplifies if branch in apds9306_write_event_config
  2024-11-02 13:21     ` Subhajit Ghosh
@ 2024-11-02 14:29       ` Julien Stephan
  2024-11-02 15:09         ` Subhajit Ghosh
  0 siblings, 1 reply; 36+ messages in thread
From: Julien Stephan @ 2024-11-02 14:29 UTC (permalink / raw)
  To: Subhajit Ghosh
  Cc: Jonathan Cameron, Mudit Sharma, Lars-Peter Clausen, Anshul Dalal,
	Javier Carrasco, Jean-Baptiste Maneyrol, Michael Hennerich,
	Cosmin Tanislav, Ramona Gradinariu, Antoniu Miclaus,
	Dan Robertson, Marcelo Schmitt, Matteo Martelli,
	Anand Ashok Dumbre, Michal Simek, Mariel Tinaco, Jagath Jog J,
	Lorenzo Bianconi, Kevin Tsai, Linus Walleij, Benson Leung,
	Guenter Roeck, linux-iio, linux-kernel, linux-arm-kernel,
	chrome-platform

Le sam. 2 nov. 2024 à 14:21, Subhajit Ghosh
<subhajit.ghosh@tweaklogic.com> a écrit :
>
> On 2/11/24 03:11, Jonathan Cameron wrote:
> > On Thu, 31 Oct 2024 16:27:08 +0100
> > Julien Stephan <jstephan@baylibre.com> wrote:
> >
> >> Simplifies the regmap_wite if branch in apds9306_write_event_config.
> > Applied.
> >>
> >> Signed-off-by: Julien Stephan <jstephan@baylibre.com>
> >> ---
> >>   drivers/iio/light/apds9306.c | 5 +----
> >>   1 file changed, 1 insertion(+), 4 deletions(-)
> >>
> >> diff --git a/drivers/iio/light/apds9306.c b/drivers/iio/light/apds9306.c
> >> index 8adc74040db2bddf93fbb773e3519abcc726b9a6..9c08e7c3ad0c17519689a630d42fe9b90438dfe8 100644
> >> --- a/drivers/iio/light/apds9306.c
> >> +++ b/drivers/iio/light/apds9306.c
> >> @@ -1125,10 +1125,7 @@ static int apds9306_write_event_config(struct iio_dev *indio_dev,
> >>              }
> >>      }
> >>      case IIO_EV_TYPE_THRESH_ADAPTIVE:
> >> -            if (state)
> >> -                    return regmap_field_write(rf->int_thresh_var_en, 1);
> >> -            else
> >> -                    return regmap_field_write(rf->int_thresh_var_en, 0);
> >> +            return regmap_field_write(rf->int_thresh_var_en, state);
> >>      default:
> >>              return -EINVAL;
> >>      }
> >>
> >
> Hi Julien,
> Sorry for the delay.
> "int_thresh_var_en" corresponds to APDS9306_INT_CFG_REG bit 3 (Datasheet: INT_CFG, Address: 0x19) which
> is a single bit value only. If user does "echo 4 > /sys/bus/iio/devices/iio:device0/events/thresh_adaptive_either_en",
> which trickles down to the "state" variable, do we really want to write any other value except "0" or "1"?
> Correct me if I am wrong here.

Hi Subhajit,
In drivers/iio/industrialio-event.c, iio_ev_state_store is actually
using kstrtobool to check user input, then gives the converted boolean
value to write_event_config.
So state is a boolean. By the way the purpose of this series is to
clean up code and use a bool instead of int for the state parameter.

So new code is equivalent to what was there before.
Cheers
Julien


> Regards,
> Subhajit Ghosh


^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [PATCH v2 13/15] iio: light: apds9306: simplifies if branch in apds9306_write_event_config
  2024-11-02 14:29       ` Julien Stephan
@ 2024-11-02 15:09         ` Subhajit Ghosh
  0 siblings, 0 replies; 36+ messages in thread
From: Subhajit Ghosh @ 2024-11-02 15:09 UTC (permalink / raw)
  To: Julien Stephan
  Cc: Jonathan Cameron, Mudit Sharma, Lars-Peter Clausen, Anshul Dalal,
	Javier Carrasco, Jean-Baptiste Maneyrol, Michael Hennerich,
	Cosmin Tanislav, Ramona Gradinariu, Antoniu Miclaus,
	Dan Robertson, Marcelo Schmitt, Matteo Martelli,
	Anand Ashok Dumbre, Michal Simek, Mariel Tinaco, Jagath Jog J,
	Lorenzo Bianconi, Kevin Tsai, Linus Walleij, Benson Leung,
	Guenter Roeck, linux-iio, linux-kernel, linux-arm-kernel,
	chrome-platform

On 3/11/24 00:59, Julien Stephan wrote:
> Le sam. 2 nov. 2024 à 14:21, Subhajit Ghosh
> <subhajit.ghosh@tweaklogic.com> a écrit :
>>
>> On 2/11/24 03:11, Jonathan Cameron wrote:
>>> On Thu, 31 Oct 2024 16:27:08 +0100
>>> Julien Stephan <jstephan@baylibre.com> wrote:
>>>
>>>> Simplifies the regmap_wite if branch in apds9306_write_event_config.
>>> Applied.
>>>>
>>>> Signed-off-by: Julien Stephan <jstephan@baylibre.com>
>>>> ---
>>>>    drivers/iio/light/apds9306.c | 5 +----
>>>>    1 file changed, 1 insertion(+), 4 deletions(-)
>>>>
>>>> diff --git a/drivers/iio/light/apds9306.c b/drivers/iio/light/apds9306.c
>>>> index 8adc74040db2bddf93fbb773e3519abcc726b9a6..9c08e7c3ad0c17519689a630d42fe9b90438dfe8 100644
>>>> --- a/drivers/iio/light/apds9306.c
>>>> +++ b/drivers/iio/light/apds9306.c
>>>> @@ -1125,10 +1125,7 @@ static int apds9306_write_event_config(struct iio_dev *indio_dev,
>>>>               }
>>>>       }
>>>>       case IIO_EV_TYPE_THRESH_ADAPTIVE:
>>>> -            if (state)
>>>> -                    return regmap_field_write(rf->int_thresh_var_en, 1);
>>>> -            else
>>>> -                    return regmap_field_write(rf->int_thresh_var_en, 0);
>>>> +            return regmap_field_write(rf->int_thresh_var_en, state);
>>>>       default:
>>>>               return -EINVAL;
>>>>       }
>>>>
>>>
>> Hi Julien,
>> Sorry for the delay.
>> "int_thresh_var_en" corresponds to APDS9306_INT_CFG_REG bit 3 (Datasheet: INT_CFG, Address: 0x19) which
>> is a single bit value only. If user does "echo 4 > /sys/bus/iio/devices/iio:device0/events/thresh_adaptive_either_en",
>> which trickles down to the "state" variable, do we really want to write any other value except "0" or "1"?
>> Correct me if I am wrong here.
> 
> Hi Subhajit,
> In drivers/iio/industrialio-event.c, iio_ev_state_store is actually
> using kstrtobool to check user input, then gives the converted boolean
> value to write_event_configOhh ok, that's handy.
> So state is a boolean. By the way the purpose of this series is to
> clean up code and use a bool instead of int for the state parameter.
Thank you Julien for your efforts.
> 
> So new code is equivalent to what was there before.
> Cheers
> Julien
> 
Since it is already applied, nothing much for me to do here.
Regards,
Subhajit Ghosh



^ permalink raw reply	[flat|nested] 36+ messages in thread

end of thread, other threads:[~2024-11-02 15:11 UTC | newest]

Thread overview: 36+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-31 15:26 [PATCH v2 00/15] iio: fix write_event_config signature Julien Stephan
2024-10-31 15:26 ` [PATCH v2 01/15] iio: light: ltr390: simplify code in write_event_config callback Julien Stephan
2024-11-01 15:32   ` Jonathan Cameron
2024-10-31 15:26 ` [PATCH v2 02/15] iio: proximity: hx9023s: " Julien Stephan
2024-11-01 15:34   ` Jonathan Cameron
2024-10-31 15:26 ` [PATCH v2 03/15] iio: light: tsl2772: " Julien Stephan
2024-11-01 15:35   ` Jonathan Cameron
2024-10-31 15:26 ` [PATCH v2 04/15] iio: proximity: irsd200: " Julien Stephan
2024-11-01 15:36   ` Jonathan Cameron
2024-10-31 15:27 ` [PATCH v2 05/15] iio: proximity: sx9500: " Julien Stephan
2024-11-01 15:36   ` Jonathan Cameron
2024-10-31 15:27 ` [PATCH v2 06/15] iio: light: adux1020: write_event_config: use local variable for interrupt value Julien Stephan
2024-10-31 16:27   ` David Lechner
2024-11-01 15:44     ` Jonathan Cameron
2024-11-01 18:18       ` Julien Stephan
2024-10-31 15:27 ` [PATCH v2 07/15] iio: fix write_event_config signature Julien Stephan
2024-11-01 16:32   ` Jonathan Cameron
2024-10-31 15:27 ` [PATCH v2 08/15] iio: accel: mma9551: use bool for event state Julien Stephan
2024-11-01 16:33   ` Jonathan Cameron
2024-10-31 15:27 ` [PATCH v2 09/15] iio: accel: sca3000: " Julien Stephan
2024-11-01 16:34   ` Jonathan Cameron
2024-10-31 15:27 ` [PATCH v2 10/15] iio: imu: bmi323: " Julien Stephan
2024-11-01 16:35   ` Jonathan Cameron
2024-10-31 15:27 ` [PATCH v2 11/15] iio: imu: st_lsm6dsx: " Julien Stephan
2024-11-01 16:36   ` Jonathan Cameron
2024-10-31 15:27 ` [PATCH v2 12/15] iio: light: apds9300: " Julien Stephan
2024-11-01 16:40   ` Jonathan Cameron
2024-10-31 15:27 ` [PATCH v2 13/15] iio: light: apds9306: simplifies if branch in apds9306_write_event_config Julien Stephan
2024-11-01 16:41   ` Jonathan Cameron
2024-11-02 13:21     ` Subhajit Ghosh
2024-11-02 14:29       ` Julien Stephan
2024-11-02 15:09         ` Subhajit Ghosh
2024-10-31 15:27 ` [PATCH v2 14/15] iio: light: apds9960: convert als_int and pxs_int to bool Julien Stephan
2024-11-01 16:42   ` Jonathan Cameron
2024-10-31 15:27 ` [PATCH v2 15/15] iio: light: apds9960: remove useless return Julien Stephan
2024-11-01 16:44   ` Jonathan Cameron

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