* [PATCH 0/7] iio: fix write_event_config signature
@ 2024-10-24 9:11 Julien Stephan
2024-10-24 9:11 ` [PATCH 1/7] iio: light: bh1745: simplify code in write_event_config callback Julien Stephan
` (6 more replies)
0 siblings, 7 replies; 17+ messages in thread
From: Julien Stephan @ 2024-10-24 9:11 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>
---
Julien Stephan (7):
iio: light: bh1745: simplify code in write_event_config callback
iio: light: ltr390: simplify code in write_event_config callback
iio: light: ltr501: simplify code in write_event_config callback
iio: light: veml6030: simplify code in write_event_config callback
iio: imu: inv_mpu6050: simplify code in write_event_config callback
iio: light: stk3310: simplify code in write_event_config callback
iio: fix write_event_config signature
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 | 9 ++---
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 | 4 +--
drivers/iio/light/bh1745.c | 50 ++++++++++++--------------
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 | 5 +--
drivers/iio/light/ltr501.c | 6 +---
drivers/iio/light/max44009.c | 2 +-
drivers/iio/light/opt3001.c | 2 +-
drivers/iio/light/stk3310.c | 5 +--
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 | 5 +--
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, 96 insertions(+), 112 deletions(-)
---
base-commit: 9090ececac9ff1e22fb7e042f3c886990a8fb090
change-id: 20241023-iio-fix-write-event-config-signature-1bc1f52fdedf
Best regards,
--
Julien Stephan <jstephan@baylibre.com>
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 1/7] iio: light: bh1745: simplify code in write_event_config callback
2024-10-24 9:11 [PATCH 0/7] iio: fix write_event_config signature Julien Stephan
@ 2024-10-24 9:11 ` Julien Stephan
2024-10-26 12:20 ` Jonathan Cameron
2024-10-24 9:11 ` [PATCH 2/7] iio: light: ltr390: " Julien Stephan
` (5 subsequent siblings)
6 siblings, 1 reply; 17+ messages in thread
From: Julien Stephan @ 2024-10-24 9:11 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/bh1745.c | 48 +++++++++++++++++++++-------------------------
1 file changed, 22 insertions(+), 26 deletions(-)
diff --git a/drivers/iio/light/bh1745.c b/drivers/iio/light/bh1745.c
index 2e458e9d5d85308fb6a13d9dbd845fa03b56a40e..fc6bf062d4f510886f909509d8115f0cf892f3c4 100644
--- a/drivers/iio/light/bh1745.c
+++ b/drivers/iio/light/bh1745.c
@@ -643,41 +643,37 @@ static int bh1745_write_event_config(struct iio_dev *indio_dev,
struct bh1745_data *data = iio_priv(indio_dev);
int value;
- if (state == 0)
+ if (!state)
return regmap_clear_bits(data->regmap,
BH1745_INTR, BH1745_INTR_ENABLE);
- if (state == 1) {
- /* Latch is always enabled when enabling interrupt */
- value = BH1745_INTR_ENABLE;
+ /* Latch is always enabled when enabling interrupt */
+ value = BH1745_INTR_ENABLE;
- switch (chan->channel2) {
- case IIO_MOD_LIGHT_RED:
- return regmap_write(data->regmap, BH1745_INTR,
- value | FIELD_PREP(BH1745_INTR_SOURCE_MASK,
- BH1745_INTR_SOURCE_RED));
+ switch (chan->channel2) {
+ case IIO_MOD_LIGHT_RED:
+ return regmap_write(data->regmap, BH1745_INTR,
+ value | FIELD_PREP(BH1745_INTR_SOURCE_MASK,
+ BH1745_INTR_SOURCE_RED));
- case IIO_MOD_LIGHT_GREEN:
- return regmap_write(data->regmap, BH1745_INTR,
- value | FIELD_PREP(BH1745_INTR_SOURCE_MASK,
- BH1745_INTR_SOURCE_GREEN));
+ case IIO_MOD_LIGHT_GREEN:
+ return regmap_write(data->regmap, BH1745_INTR,
+ value | FIELD_PREP(BH1745_INTR_SOURCE_MASK,
+ BH1745_INTR_SOURCE_GREEN));
- case IIO_MOD_LIGHT_BLUE:
- return regmap_write(data->regmap, BH1745_INTR,
- value | FIELD_PREP(BH1745_INTR_SOURCE_MASK,
- BH1745_INTR_SOURCE_BLUE));
+ case IIO_MOD_LIGHT_BLUE:
+ return regmap_write(data->regmap, BH1745_INTR,
+ value | FIELD_PREP(BH1745_INTR_SOURCE_MASK,
+ BH1745_INTR_SOURCE_BLUE));
- case IIO_MOD_LIGHT_CLEAR:
- return regmap_write(data->regmap, BH1745_INTR,
- value | FIELD_PREP(BH1745_INTR_SOURCE_MASK,
- BH1745_INTR_SOURCE_CLEAR));
+ case IIO_MOD_LIGHT_CLEAR:
+ return regmap_write(data->regmap, BH1745_INTR,
+ value | FIELD_PREP(BH1745_INTR_SOURCE_MASK,
+ BH1745_INTR_SOURCE_CLEAR));
- default:
- return -EINVAL;
- }
+ default:
+ return -EINVAL;
}
-
- return -EINVAL;
}
static int bh1745_read_avail(struct iio_dev *indio_dev,
--
2.47.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 2/7] iio: light: ltr390: simplify code in write_event_config callback
2024-10-24 9:11 [PATCH 0/7] iio: fix write_event_config signature Julien Stephan
2024-10-24 9:11 ` [PATCH 1/7] iio: light: bh1745: simplify code in write_event_config callback Julien Stephan
@ 2024-10-24 9:11 ` Julien Stephan
2024-10-26 12:22 ` Jonathan Cameron
2024-10-24 9:11 ` [PATCH 3/7] iio: light: ltr501: " Julien Stephan
` (4 subsequent siblings)
6 siblings, 1 reply; 17+ messages in thread
From: Julien Stephan @ 2024-10-24 9:11 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 | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/iio/light/ltr390.c b/drivers/iio/light/ltr390.c
index 8e0a3fc3d923a6f65d2a629c87e7bfd35d82a507..ff6b5d8b582b33eba60b769dff529caa00fb7244 100644
--- a/drivers/iio/light/ltr390.c
+++ b/drivers/iio/light/ltr390.c
@@ -558,9 +558,6 @@ 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)
return regmap_clear_bits(data->regmap, LTR390_INT_CFG, LTR390_LS_INT_EN);
--
2.47.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 3/7] iio: light: ltr501: simplify code in write_event_config callback
2024-10-24 9:11 [PATCH 0/7] iio: fix write_event_config signature Julien Stephan
2024-10-24 9:11 ` [PATCH 1/7] iio: light: bh1745: simplify code in write_event_config callback Julien Stephan
2024-10-24 9:11 ` [PATCH 2/7] iio: light: ltr390: " Julien Stephan
@ 2024-10-24 9:11 ` Julien Stephan
2024-10-26 12:23 ` Jonathan Cameron
2024-10-24 9:11 ` [PATCH 4/7] iio: light: veml6030: " Julien Stephan
` (3 subsequent siblings)
6 siblings, 1 reply; 17+ messages in thread
From: Julien Stephan @ 2024-10-24 9:11 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/ltr501.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/drivers/iio/light/ltr501.c b/drivers/iio/light/ltr501.c
index 8c516ede911619bb4ee8f8a823f242b7aaa6af55..42daebd6023456098dc4bcedc3fe3a45f9ae5be0 100644
--- a/drivers/iio/light/ltr501.c
+++ b/drivers/iio/light/ltr501.c
@@ -1083,10 +1083,6 @@ static int ltr501_write_event_config(struct iio_dev *indio_dev,
struct ltr501_data *data = iio_priv(indio_dev);
int ret;
- /* only 1 and 0 are valid inputs */
- if (state != 1 && state != 0)
- return -EINVAL;
-
switch (chan->type) {
case IIO_INTENSITY:
mutex_lock(&data->lock_als);
--
2.47.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 4/7] iio: light: veml6030: simplify code in write_event_config callback
2024-10-24 9:11 [PATCH 0/7] iio: fix write_event_config signature Julien Stephan
` (2 preceding siblings ...)
2024-10-24 9:11 ` [PATCH 3/7] iio: light: ltr501: " Julien Stephan
@ 2024-10-24 9:11 ` Julien Stephan
2024-10-26 12:25 ` Jonathan Cameron
2024-10-24 9:11 ` [PATCH 5/7] iio: imu: inv_mpu6050: " Julien Stephan
` (2 subsequent siblings)
6 siblings, 1 reply; 17+ messages in thread
From: Julien Stephan @ 2024-10-24 9:11 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/veml6030.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/iio/light/veml6030.c b/drivers/iio/light/veml6030.c
index d6f3b104b0e6be8e095a1ad9f20acb81ce492630..95751c1015909cd80543a559673f435d1a168f68 100644
--- a/drivers/iio/light/veml6030.c
+++ b/drivers/iio/light/veml6030.c
@@ -826,9 +826,6 @@ static int veml6030_write_interrupt_config(struct iio_dev *indio_dev,
int ret;
struct veml6030_data *data = iio_priv(indio_dev);
- if (state < 0 || state > 1)
- return -EINVAL;
-
ret = veml6030_als_shut_down(data);
if (ret < 0) {
dev_err(&data->client->dev,
--
2.47.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 5/7] iio: imu: inv_mpu6050: simplify code in write_event_config callback
2024-10-24 9:11 [PATCH 0/7] iio: fix write_event_config signature Julien Stephan
` (3 preceding siblings ...)
2024-10-24 9:11 ` [PATCH 4/7] iio: light: veml6030: " Julien Stephan
@ 2024-10-24 9:11 ` Julien Stephan
2024-10-24 12:16 ` Jean-Baptiste Maneyrol
2024-10-24 9:11 ` [PATCH 6/7] iio: light: stk3310: " Julien Stephan
2024-10-24 9:11 ` [PATCH 7/7] iio: fix write_event_config signature Julien Stephan
6 siblings, 1 reply; 17+ messages in thread
From: Julien Stephan @ 2024-10-24 9:11 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/imu/inv_mpu6050/inv_mpu_core.c | 7 ++-----
drivers/iio/light/apds9960.c | 2 --
2 files changed, 2 insertions(+), 7 deletions(-)
diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
index 5680be153127711777b6074da18a7a0f86211d6c..21ebf0f7e28fec302cbf8ab890fc53a3de6f36cd 100644
--- a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
+++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
@@ -1176,21 +1176,18 @@ static int inv_mpu6050_write_event_config(struct iio_dev *indio_dev,
int state)
{
struct inv_mpu6050_state *st = iio_priv(indio_dev);
- int enable;
/* support only WoM (accel roc rising) event */
if (chan->type != IIO_ACCEL || type != IIO_EV_TYPE_ROC ||
dir != IIO_EV_DIR_RISING)
return -EINVAL;
- enable = !!state;
-
guard(mutex)(&st->lock);
- if (st->chip_config.wom_en == enable)
+ if (st->chip_config.wom_en == state)
return 0;
- return inv_mpu6050_enable_wom(st, enable);
+ return inv_mpu6050_enable_wom(st, state);
}
static int inv_mpu6050_read_event_value(struct iio_dev *indio_dev,
diff --git a/drivers/iio/light/apds9960.c b/drivers/iio/light/apds9960.c
index 3c14e4c30805e1b596ef2380f94e6aa3e92082b1..3a56eaae5a68f2891d061871c7013f0b5447bb47 100644
--- a/drivers/iio/light/apds9960.c
+++ b/drivers/iio/light/apds9960.c
@@ -762,8 +762,6 @@ static int apds9960_write_event_config(struct iio_dev *indio_dev,
struct apds9960_data *data = iio_priv(indio_dev);
int ret;
- state = !!state;
-
switch (chan->type) {
case IIO_PROXIMITY:
if (data->pxs_int == state)
--
2.47.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 6/7] iio: light: stk3310: simplify code in write_event_config callback
2024-10-24 9:11 [PATCH 0/7] iio: fix write_event_config signature Julien Stephan
` (4 preceding siblings ...)
2024-10-24 9:11 ` [PATCH 5/7] iio: imu: inv_mpu6050: " Julien Stephan
@ 2024-10-24 9:11 ` Julien Stephan
2024-10-26 12:30 ` Jonathan Cameron
2024-10-24 9:11 ` [PATCH 7/7] iio: fix write_event_config signature Julien Stephan
6 siblings, 1 reply; 17+ messages in thread
From: Julien Stephan @ 2024-10-24 9:11 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/stk3310.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/iio/light/stk3310.c b/drivers/iio/light/stk3310.c
index ed20b67145463d253a0dff28a4c1c3e02e710319..c6f950af5afa0f77a617bd2baf0a08eef5ec26f0 100644
--- a/drivers/iio/light/stk3310.c
+++ b/drivers/iio/light/stk3310.c
@@ -330,9 +330,6 @@ static int stk3310_write_event_config(struct iio_dev *indio_dev,
struct stk3310_data *data = iio_priv(indio_dev);
struct i2c_client *client = data->client;
- if (state < 0 || state > 7)
- return -EINVAL;
-
/* Set INT_PS value */
mutex_lock(&data->lock);
ret = regmap_field_write(data->reg_int_ps, state);
--
2.47.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 7/7] iio: fix write_event_config signature
2024-10-24 9:11 [PATCH 0/7] iio: fix write_event_config signature Julien Stephan
` (5 preceding siblings ...)
2024-10-24 9:11 ` [PATCH 6/7] iio: light: stk3310: " Julien Stephan
@ 2024-10-24 9:11 ` Julien Stephan
2024-10-26 12:59 ` Jonathan Cameron
6 siblings, 1 reply; 17+ messages in thread
From: Julien Stephan @ 2024-10-24 9:11 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 bbf65fc97b082dc92cb19155925c8b2ad3081003..87ac955f9740d310a95cab2109b1703941276ed6 100644
--- a/drivers/iio/accel/kxcjk-1013.c
+++ b/drivers/iio/accel/kxcjk-1013.c
@@ -1064,7 +1064,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 fa1799b0b0dff35ccd811c4abee3883249c184da..0656e35a1c4e5c1268a4bbf7011fd9282053dbbf 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 86543f34ef17cfe9ed092930b07c2418e0bf373a..3c28957b19a94d8a8b6294c50290bb2e0745c7f5 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 a96fae546bc1e6d1bf3a0dbe67204c191d77a3ee..d65b9248dca8be68baca3a71463979c2321d792e 100644
--- a/drivers/iio/adc/pac1921.c
+++ b/drivers/iio/adc/pac1921.c
@@ -699,7 +699,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 10728d5ccae398d15c1d51e0380306042675d5c0..badc4155b5a0a928c22eb764c0ff9eb8a463a9f2 100644
--- a/drivers/iio/gyro/bmg160_core.c
+++ b/drivers/iio/gyro/bmg160_core.c
@@ -749,7 +749,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 2e0170be077aef9aa194fab51afbb33aec02e513..a36cdad113f774ef8733eb1aaef0f87d5d2532f1 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;
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 ff6b5d8b582b33eba60b769dff529caa00fb7244..b67c811cdf54af8de3dec3e1713a41312fb238d4 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 42daebd6023456098dc4bcedc3fe3a45f9ae5be0..cf01686dd92cd13f73b6abb14d4bb53dc1a28d0a 100644
--- a/drivers/iio/light/ltr501.c
+++ b/drivers/iio/light/ltr501.c
@@ -1078,7 +1078,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 cab468a82b616a23394977da1d8822d29d8941d3..13086048ee5ffae77c26db8cbd3cb7002e1a72e2 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 d8fb34060d3db88a3ba5ecdc209b14be8e42e8b9..8c2f1cf062033dd8580f8f75649543289fbf9fb7 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 6e96b764fed8b577d71c3146210679b0b61d4c38..eded45a778737a699f8b69ad86a9909594e04b32 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 3f4eace05cfc6a4679fe82854dc059aa4a710d6d..e7da02c59b753158c30c7473bdeea8886a2977a3 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 3a9b57187a958d6e65c699cf7814df5bac9a99e3..6a07cd6820b6d95493d7ad78981ba1ad19446768 100644
--- a/include/linux/iio/iio.h
+++ b/include/linux/iio/iio.h
@@ -514,7 +514,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] 17+ messages in thread
* Re: [PATCH 5/7] iio: imu: inv_mpu6050: simplify code in write_event_config callback
2024-10-24 9:11 ` [PATCH 5/7] iio: imu: inv_mpu6050: " Julien Stephan
@ 2024-10-24 12:16 ` Jean-Baptiste Maneyrol
2024-10-26 12:27 ` Jonathan Cameron
0 siblings, 1 reply; 17+ messages in thread
From: Jean-Baptiste Maneyrol @ 2024-10-24 12:16 UTC (permalink / raw)
To: Julien Stephan, Mudit Sharma, Jonathan Cameron,
Lars-Peter Clausen, Anshul Dalal, Javier Carrasco,
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@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
chrome-platform@lists.linux.dev
Hello Julien,
good thing to know, thanks for the patch.
Acked-by: Jean-Baptiste Maneyrol <jean-baptiste.maneyrol@tdk.com>
Best regards,
JB
________________________________________
From: Julien Stephan <jstephan@baylibre.com>
Sent: Thursday, October 24, 2024 11:11
To: Mudit Sharma <muditsharma.info@gmail.com>; Jonathan Cameron <jic23@kernel.org>; Lars-Peter Clausen <lars@metafoo.de>; Anshul Dalal <anshulusr@gmail.com>; Javier Carrasco <javier.carrasco.cruz@gmail.com>; Jean-Baptiste Maneyrol <Jean-Baptiste.Maneyrol@tdk.com>; Michael Hennerich <Michael.Hennerich@analog.com>; Cosmin Tanislav <cosmin.tanislav@analog.com>; Ramona Gradinariu <ramona.gradinariu@analog.com>; Antoniu Miclaus <antoniu.miclaus@analog.com>; Dan Robertson <dan@dlrobertson.com>; Marcelo Schmitt <marcelo.schmitt@analog.com>; Matteo Martelli <matteomartelli3@gmail.com>; Anand Ashok Dumbre <anand.ashok.dumbre@xilinx.com>; Michal Simek <michal.simek@amd.com>; Mariel Tinaco <Mariel.Tinaco@analog.com>; Jagath Jog J <jagathjog1996@gmail.com>; Lorenzo Bianconi <lorenzo@kernel.org>; Subhajit Ghosh <subhajit.ghosh@tweaklogic.com>; Kevin Tsai <ktsai@capellamicro.com>; Linus Walleij <linus.walleij@linaro.org>; Benson Leung <bleung@chromium.org>; Guenter Roeck <groeck@chromium.org>
Cc: linux-iio@vger.kernel.org <linux-iio@vger.kernel.org>; linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org>; linux-arm-kernel@lists.infradead.org <linux-arm-kernel@lists.infradead.org>; chrome-platform@lists.linux.dev <chrome-platform@lists.linux.dev>; Julien Stephan <jstephan@baylibre.com>
Subject: [PATCH 5/7] iio: imu: inv_mpu6050: simplify code in write_event_config callback
This Message Is From an External Sender
This message came from outside your organization.
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/imu/inv_mpu6050/inv_mpu_core.c | 7 ++-----
drivers/iio/light/apds9960.c | 2 --
2 files changed, 2 insertions(+), 7 deletions(-)
diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
index 5680be153127711777b6074da18a7a0f86211d6c..21ebf0f7e28fec302cbf8ab890fc53a3de6f36cd 100644
--- a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
+++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
@@ -1176,21 +1176,18 @@ static int inv_mpu6050_write_event_config(struct iio_dev *indio_dev,
int state)
{
struct inv_mpu6050_state *st = iio_priv(indio_dev);
- int enable;
/* support only WoM (accel roc rising) event */
if (chan->type != IIO_ACCEL || type != IIO_EV_TYPE_ROC ||
dir != IIO_EV_DIR_RISING)
return -EINVAL;
- enable = !!state;
-
guard(mutex)(&st->lock);
- if (st->chip_config.wom_en == enable)
+ if (st->chip_config.wom_en == state)
return 0;
- return inv_mpu6050_enable_wom(st, enable);
+ return inv_mpu6050_enable_wom(st, state);
}
static int inv_mpu6050_read_event_value(struct iio_dev *indio_dev,
diff --git a/drivers/iio/light/apds9960.c b/drivers/iio/light/apds9960.c
index 3c14e4c30805e1b596ef2380f94e6aa3e92082b1..3a56eaae5a68f2891d061871c7013f0b5447bb47 100644
--- a/drivers/iio/light/apds9960.c
+++ b/drivers/iio/light/apds9960.c
@@ -762,8 +762,6 @@ static int apds9960_write_event_config(struct iio_dev *indio_dev,
struct apds9960_data *data = iio_priv(indio_dev);
int ret;
- state = !!state;
-
switch (chan->type) {
case IIO_PROXIMITY:
if (data->pxs_int == state)
--
2.47.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [PATCH 1/7] iio: light: bh1745: simplify code in write_event_config callback
2024-10-24 9:11 ` [PATCH 1/7] iio: light: bh1745: simplify code in write_event_config callback Julien Stephan
@ 2024-10-26 12:20 ` Jonathan Cameron
0 siblings, 0 replies; 17+ messages in thread
From: Jonathan Cameron @ 2024-10-26 12:20 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, 24 Oct 2024 11:11:23 +0200
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>
There are a few additions needed to the final patch.
I'll pick up the earlier ones now though.
Applied this one.
> ---
> drivers/iio/light/bh1745.c | 48 +++++++++++++++++++++-------------------------
> 1 file changed, 22 insertions(+), 26 deletions(-)
>
> diff --git a/drivers/iio/light/bh1745.c b/drivers/iio/light/bh1745.c
> index 2e458e9d5d85308fb6a13d9dbd845fa03b56a40e..fc6bf062d4f510886f909509d8115f0cf892f3c4 100644
> --- a/drivers/iio/light/bh1745.c
> +++ b/drivers/iio/light/bh1745.c
> @@ -643,41 +643,37 @@ static int bh1745_write_event_config(struct iio_dev *indio_dev,
> struct bh1745_data *data = iio_priv(indio_dev);
> int value;
>
> - if (state == 0)
> + if (!state)
> return regmap_clear_bits(data->regmap,
> BH1745_INTR, BH1745_INTR_ENABLE);
>
> - if (state == 1) {
> - /* Latch is always enabled when enabling interrupt */
> - value = BH1745_INTR_ENABLE;
> + /* Latch is always enabled when enabling interrupt */
> + value = BH1745_INTR_ENABLE;
>
> - switch (chan->channel2) {
> - case IIO_MOD_LIGHT_RED:
> - return regmap_write(data->regmap, BH1745_INTR,
> - value | FIELD_PREP(BH1745_INTR_SOURCE_MASK,
> - BH1745_INTR_SOURCE_RED));
> + switch (chan->channel2) {
> + case IIO_MOD_LIGHT_RED:
> + return regmap_write(data->regmap, BH1745_INTR,
> + value | FIELD_PREP(BH1745_INTR_SOURCE_MASK,
> + BH1745_INTR_SOURCE_RED));
>
> - case IIO_MOD_LIGHT_GREEN:
> - return regmap_write(data->regmap, BH1745_INTR,
> - value | FIELD_PREP(BH1745_INTR_SOURCE_MASK,
> - BH1745_INTR_SOURCE_GREEN));
> + case IIO_MOD_LIGHT_GREEN:
> + return regmap_write(data->regmap, BH1745_INTR,
> + value | FIELD_PREP(BH1745_INTR_SOURCE_MASK,
> + BH1745_INTR_SOURCE_GREEN));
>
> - case IIO_MOD_LIGHT_BLUE:
> - return regmap_write(data->regmap, BH1745_INTR,
> - value | FIELD_PREP(BH1745_INTR_SOURCE_MASK,
> - BH1745_INTR_SOURCE_BLUE));
> + case IIO_MOD_LIGHT_BLUE:
> + return regmap_write(data->regmap, BH1745_INTR,
> + value | FIELD_PREP(BH1745_INTR_SOURCE_MASK,
> + BH1745_INTR_SOURCE_BLUE));
>
> - case IIO_MOD_LIGHT_CLEAR:
> - return regmap_write(data->regmap, BH1745_INTR,
> - value | FIELD_PREP(BH1745_INTR_SOURCE_MASK,
> - BH1745_INTR_SOURCE_CLEAR));
> + case IIO_MOD_LIGHT_CLEAR:
> + return regmap_write(data->regmap, BH1745_INTR,
> + value | FIELD_PREP(BH1745_INTR_SOURCE_MASK,
> + BH1745_INTR_SOURCE_CLEAR));
>
> - default:
> - return -EINVAL;
> - }
> + default:
> + return -EINVAL;
> }
> -
> - return -EINVAL;
> }
>
> static int bh1745_read_avail(struct iio_dev *indio_dev,
>
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 2/7] iio: light: ltr390: simplify code in write_event_config callback
2024-10-24 9:11 ` [PATCH 2/7] iio: light: ltr390: " Julien Stephan
@ 2024-10-26 12:22 ` Jonathan Cameron
0 siblings, 0 replies; 17+ messages in thread
From: Jonathan Cameron @ 2024-10-26 12:22 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, 24 Oct 2024 11:11:24 +0200
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>
> ---
> drivers/iio/light/ltr390.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/drivers/iio/light/ltr390.c b/drivers/iio/light/ltr390.c
> index 8e0a3fc3d923a6f65d2a629c87e7bfd35d82a507..ff6b5d8b582b33eba60b769dff529caa00fb7244 100644
> --- a/drivers/iio/light/ltr390.c
> +++ b/drivers/iio/light/ltr390.c
> @@ -558,9 +558,6 @@ 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)
Once you apply the final patch, the == 0 here will make less sense.
Can tidy that up here or in that final patch by just making this
if (!state) etc
> return regmap_clear_bits(data->regmap, LTR390_INT_CFG, LTR390_LS_INT_EN);
>
>
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 3/7] iio: light: ltr501: simplify code in write_event_config callback
2024-10-24 9:11 ` [PATCH 3/7] iio: light: ltr501: " Julien Stephan
@ 2024-10-26 12:23 ` Jonathan Cameron
0 siblings, 0 replies; 17+ messages in thread
From: Jonathan Cameron @ 2024-10-26 12:23 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, 24 Oct 2024 11:11:25 +0200
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.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 4/7] iio: light: veml6030: simplify code in write_event_config callback
2024-10-24 9:11 ` [PATCH 4/7] iio: light: veml6030: " Julien Stephan
@ 2024-10-26 12:25 ` Jonathan Cameron
0 siblings, 0 replies; 17+ messages in thread
From: Jonathan Cameron @ 2024-10-26 12:25 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, 24 Oct 2024 11:11:26 +0200
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.
After patch 7 this will include a shift of a bool which is a little
unusual but valid C.
> ---
> drivers/iio/light/veml6030.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/drivers/iio/light/veml6030.c b/drivers/iio/light/veml6030.c
> index d6f3b104b0e6be8e095a1ad9f20acb81ce492630..95751c1015909cd80543a559673f435d1a168f68 100644
> --- a/drivers/iio/light/veml6030.c
> +++ b/drivers/iio/light/veml6030.c
> @@ -826,9 +826,6 @@ static int veml6030_write_interrupt_config(struct iio_dev *indio_dev,
> int ret;
> struct veml6030_data *data = iio_priv(indio_dev);
>
> - if (state < 0 || state > 1)
> - return -EINVAL;
> -
> ret = veml6030_als_shut_down(data);
> if (ret < 0) {
> dev_err(&data->client->dev,
>
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 5/7] iio: imu: inv_mpu6050: simplify code in write_event_config callback
2024-10-24 12:16 ` Jean-Baptiste Maneyrol
@ 2024-10-26 12:27 ` Jonathan Cameron
0 siblings, 0 replies; 17+ messages in thread
From: Jonathan Cameron @ 2024-10-26 12:27 UTC (permalink / raw)
To: Jean-Baptiste Maneyrol
Cc: Julien Stephan, Mudit Sharma, Lars-Peter Clausen, Anshul Dalal,
Javier Carrasco, 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@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
chrome-platform@lists.linux.dev
On Thu, 24 Oct 2024 12:16:42 +0000
Jean-Baptiste Maneyrol <Jean-Baptiste.Maneyrol@tdk.com> wrote:
> Hello Julien,
>
> good thing to know, thanks for the patch.
>
> Acked-by: Jean-Baptiste Maneyrol <jean-baptiste.maneyrol@tdk.com>
Applied.
>
> Best regards,
> JB
>
> ________________________________________
> From: Julien Stephan <jstephan@baylibre.com>
> Sent: Thursday, October 24, 2024 11:11
> To: Mudit Sharma <muditsharma.info@gmail.com>; Jonathan Cameron <jic23@kernel.org>; Lars-Peter Clausen <lars@metafoo.de>; Anshul Dalal <anshulusr@gmail.com>; Javier Carrasco <javier.carrasco.cruz@gmail.com>; Jean-Baptiste Maneyrol <Jean-Baptiste.Maneyrol@tdk.com>; Michael Hennerich <Michael.Hennerich@analog.com>; Cosmin Tanislav <cosmin.tanislav@analog.com>; Ramona Gradinariu <ramona.gradinariu@analog.com>; Antoniu Miclaus <antoniu.miclaus@analog.com>; Dan Robertson <dan@dlrobertson.com>; Marcelo Schmitt <marcelo.schmitt@analog.com>; Matteo Martelli <matteomartelli3@gmail.com>; Anand Ashok Dumbre <anand.ashok.dumbre@xilinx.com>; Michal Simek <michal.simek@amd.com>; Mariel Tinaco <Mariel.Tinaco@analog.com>; Jagath Jog J <jagathjog1996@gmail.com>; Lorenzo Bianconi <lorenzo@kernel.org>; Subhajit Ghosh <subhajit.ghosh@tweaklogic.com>; Kevin Tsai <ktsai@capellamicro.com>; Linus Walleij <linus.walleij@linaro.org>; Benson Leung <bleung@chromium.org>; Guenter Roeck <groeck@chromium.org>
> Cc: linux-iio@vger.kernel.org <linux-iio@vger.kernel.org>; linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org>; linux-arm-kernel@lists.infradead.org <linux-arm-kernel@lists.infradead.org>; chrome-platform@lists.linux.dev <chrome-platform@lists.linux.dev>; Julien Stephan <jstephan@baylibre.com>
> Subject: [PATCH 5/7] iio: imu: inv_mpu6050: simplify code in write_event_config callback
>
> This Message Is From an External Sender
> This message came from outside your organization.
>
> 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/imu/inv_mpu6050/inv_mpu_core.c | 7 ++-----
> drivers/iio/light/apds9960.c | 2 --
> 2 files changed, 2 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
> index 5680be153127711777b6074da18a7a0f86211d6c..21ebf0f7e28fec302cbf8ab890fc53a3de6f36cd 100644
> --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
> +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
> @@ -1176,21 +1176,18 @@ static int inv_mpu6050_write_event_config(struct iio_dev *indio_dev,
> int state)
> {
> struct inv_mpu6050_state *st = iio_priv(indio_dev);
> - int enable;
>
> /* support only WoM (accel roc rising) event */
> if (chan->type != IIO_ACCEL || type != IIO_EV_TYPE_ROC ||
> dir != IIO_EV_DIR_RISING)
> return -EINVAL;
>
> - enable = !!state;
> -
> guard(mutex)(&st->lock);
>
> - if (st->chip_config.wom_en == enable)
> + if (st->chip_config.wom_en == state)
> return 0;
>
> - return inv_mpu6050_enable_wom(st, enable);
> + return inv_mpu6050_enable_wom(st, state);
> }
>
> static int inv_mpu6050_read_event_value(struct iio_dev *indio_dev,
> diff --git a/drivers/iio/light/apds9960.c b/drivers/iio/light/apds9960.c
> index 3c14e4c30805e1b596ef2380f94e6aa3e92082b1..3a56eaae5a68f2891d061871c7013f0b5447bb47 100644
> --- a/drivers/iio/light/apds9960.c
> +++ b/drivers/iio/light/apds9960.c
> @@ -762,8 +762,6 @@ static int apds9960_write_event_config(struct iio_dev *indio_dev,
> struct apds9960_data *data = iio_priv(indio_dev);
> int ret;
>
> - state = !!state;
> -
> switch (chan->type) {
> case IIO_PROXIMITY:
> if (data->pxs_int == state)
>
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 6/7] iio: light: stk3310: simplify code in write_event_config callback
2024-10-24 9:11 ` [PATCH 6/7] iio: light: stk3310: " Julien Stephan
@ 2024-10-26 12:30 ` Jonathan Cameron
0 siblings, 0 replies; 17+ messages in thread
From: Jonathan Cameron @ 2024-10-26 12:30 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, 24 Oct 2024 11:11:28 +0200
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>
This one is odd. The field is 1 bit so I've no idea why checking against 7
would ever have made sense.
Applied, but if anyone is familiar with this part I would like more
eyes on that code to see if there is a bug hiding there.
Jonathan
> ---
> drivers/iio/light/stk3310.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/drivers/iio/light/stk3310.c b/drivers/iio/light/stk3310.c
> index ed20b67145463d253a0dff28a4c1c3e02e710319..c6f950af5afa0f77a617bd2baf0a08eef5ec26f0 100644
> --- a/drivers/iio/light/stk3310.c
> +++ b/drivers/iio/light/stk3310.c
> @@ -330,9 +330,6 @@ static int stk3310_write_event_config(struct iio_dev *indio_dev,
> struct stk3310_data *data = iio_priv(indio_dev);
> struct i2c_client *client = data->client;
>
> - if (state < 0 || state > 7)
> - return -EINVAL;
> -
> /* Set INT_PS value */
> mutex_lock(&data->lock);
> ret = regmap_field_write(data->reg_int_ps, state);
>
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 7/7] iio: fix write_event_config signature
2024-10-24 9:11 ` [PATCH 7/7] iio: fix write_event_config signature Julien Stephan
@ 2024-10-26 12:59 ` Jonathan Cameron
2024-10-30 14:07 ` Julien Stephan
0 siblings, 1 reply; 17+ messages in thread
From: Jonathan Cameron @ 2024-10-26 12:59 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, 24 Oct 2024 11:11:29 +0200
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,
It's a nice cleanup, but the challenge of this sort of change is the odd ways
various drivers use what you are changing.
So ever single case needs close inspection. I took a fairly broad look at it and there
is at least one case that I think is broken by the change :(
+ a bunch of others where the result needs tidying up to not end up confusing.
Jonathan
> 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/mma9551.c b/drivers/iio/accel/mma9551.c
> index fa1799b0b0dff35ccd811c4abee3883249c184da..0656e35a1c4e5c1268a4bbf7011fd9282053dbbf 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;
Good to push down into functions called.
> 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;
Good to push down the state into the functions called.
> 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);
>
Mix of types used to store state. Would be good to chase the boolean though. But no
need to do that for this series.
> 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;
state is stored in a mix of bool and int in this driver. Might be a nice to cleanup
thing but not strictly part of what you are doing here.
> diff --git a/drivers/iio/light/adux1020.c b/drivers/iio/light/adux1020.c
> index 2e0170be077aef9aa194fab51afbb33aec02e513..a36cdad113f774ef8733eb1aaef0f87d5d2532f1 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)
This one is a bug, because state is used as an intermediate for other stuff.
Bad code, but needs fixing before you can do this.
> {
> struct adux1020_data *data = iio_priv(indio_dev);
> int ret, mask;
> 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;
Tidying up the interrupt state to all be tracked with a bool in here would make this better, but
not strictly related to what you have here.
> 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;
This has a rather silly regmap_field_write() related if statement you could clean up but
that's an optional extra.
> 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;
Should change type of pxs_int etc to bool.
> diff --git a/drivers/iio/light/ltr390.c b/drivers/iio/light/ltr390.c
> index ff6b5d8b582b33eba60b769dff529caa00fb7244..b67c811cdf54af8de3dec3e1713a41312fb238d4 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;
See review of patch 2.
> diff --git a/drivers/iio/light/tsl2772.c b/drivers/iio/light/tsl2772.c
> index cab468a82b616a23394977da1d8822d29d8941d3..13086048ee5ffae77c26db8cbd3cb7002e1a72e2 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);
>
val ? true : false
in here should go.
> diff --git a/drivers/iio/proximity/hx9023s.c b/drivers/iio/proximity/hx9023s.c
> index d8fb34060d3db88a3ba5ecdc209b14be8e42e8b9..8c2f1cf062033dd8580f8f75649543289fbf9fb7 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);
Has a !!state that should go.
>
> diff --git a/drivers/iio/proximity/irsd200.c b/drivers/iio/proximity/irsd200.c
> index 6e96b764fed8b577d71c3146210679b0b61d4c38..eded45a778737a699f8b69ad86a9909594e04b32 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,
This has a !!state that should go.
> 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 3f4eace05cfc6a4679fe82854dc059aa4a710d6d..e7da02c59b753158c30c7473bdeea8886a2977a3 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)
> {
This one treats state as an integer. We should change that before applying this patch.
> struct sx9500_data *data = iio_priv(indio_dev);
> int ret;
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 7/7] iio: fix write_event_config signature
2024-10-26 12:59 ` Jonathan Cameron
@ 2024-10-30 14:07 ` Julien Stephan
0 siblings, 0 replies; 17+ messages in thread
From: Julien Stephan @ 2024-10-30 14:07 UTC (permalink / raw)
To: Jonathan Cameron
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
Le sam. 26 oct. 2024 à 15:00, Jonathan Cameron <jic23@kernel.org> a écrit :
>
> On Thu, 24 Oct 2024 11:11:29 +0200
> 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,
>
> It's a nice cleanup, but the challenge of this sort of change is the odd ways
> various drivers use what you are changing.
>
> So ever single case needs close inspection. I took a fairly broad look at it and there
> is at least one case that I think is broken by the change :(
> + a bunch of others where the result needs tidying up to not end up confusing.
>
>
Hi Jonathan,
I apologize for missing some cleanup in a few callbacks. Thank you for
pointing it out. I’ll send a v2 with these updates.
Cheers
Julien
> Jonathan
>
> > 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/mma9551.c b/drivers/iio/accel/mma9551.c
> > index fa1799b0b0dff35ccd811c4abee3883249c184da..0656e35a1c4e5c1268a4bbf7011fd9282053dbbf 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;
>
> Good to push down into functions called.
>
> > 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;
> Good to push down the state into the functions called.
>
> > 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);
> >
> Mix of types used to store state. Would be good to chase the boolean though. But no
> need to do that for this series.
>
>
>
> > 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;
> state is stored in a mix of bool and int in this driver. Might be a nice to cleanup
> thing but not strictly part of what you are doing here.
>
> > diff --git a/drivers/iio/light/adux1020.c b/drivers/iio/light/adux1020.c
> > index 2e0170be077aef9aa194fab51afbb33aec02e513..a36cdad113f774ef8733eb1aaef0f87d5d2532f1 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)
>
> This one is a bug, because state is used as an intermediate for other stuff.
> Bad code, but needs fixing before you can do this.
>
> > {
> > struct adux1020_data *data = iio_priv(indio_dev);
> > int ret, mask;
> > 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;
> Tidying up the interrupt state to all be tracked with a bool in here would make this better, but
> not strictly related to what you have here.
>
> > 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;
> This has a rather silly regmap_field_write() related if statement you could clean up but
> that's an optional extra.
>
> > 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;
> Should change type of pxs_int etc to bool.
>
>
>
> > diff --git a/drivers/iio/light/ltr390.c b/drivers/iio/light/ltr390.c
> > index ff6b5d8b582b33eba60b769dff529caa00fb7244..b67c811cdf54af8de3dec3e1713a41312fb238d4 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;
>
> See review of patch 2.
>
>
>
> > diff --git a/drivers/iio/light/tsl2772.c b/drivers/iio/light/tsl2772.c
> > index cab468a82b616a23394977da1d8822d29d8941d3..13086048ee5ffae77c26db8cbd3cb7002e1a72e2 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);
> >
>
> val ? true : false
> in here should go.
>
> > diff --git a/drivers/iio/proximity/hx9023s.c b/drivers/iio/proximity/hx9023s.c
> > index d8fb34060d3db88a3ba5ecdc209b14be8e42e8b9..8c2f1cf062033dd8580f8f75649543289fbf9fb7 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);
> Has a !!state that should go.
> >
> > diff --git a/drivers/iio/proximity/irsd200.c b/drivers/iio/proximity/irsd200.c
> > index 6e96b764fed8b577d71c3146210679b0b61d4c38..eded45a778737a699f8b69ad86a9909594e04b32 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,
>
> This has a !!state that should go.
>
> > 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 3f4eace05cfc6a4679fe82854dc059aa4a710d6d..e7da02c59b753158c30c7473bdeea8886a2977a3 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)
> > {
> This one treats state as an integer. We should change that before applying this patch.
>
> > struct sx9500_data *data = iio_priv(indio_dev);
> > int ret;
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2024-10-30 16:16 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-24 9:11 [PATCH 0/7] iio: fix write_event_config signature Julien Stephan
2024-10-24 9:11 ` [PATCH 1/7] iio: light: bh1745: simplify code in write_event_config callback Julien Stephan
2024-10-26 12:20 ` Jonathan Cameron
2024-10-24 9:11 ` [PATCH 2/7] iio: light: ltr390: " Julien Stephan
2024-10-26 12:22 ` Jonathan Cameron
2024-10-24 9:11 ` [PATCH 3/7] iio: light: ltr501: " Julien Stephan
2024-10-26 12:23 ` Jonathan Cameron
2024-10-24 9:11 ` [PATCH 4/7] iio: light: veml6030: " Julien Stephan
2024-10-26 12:25 ` Jonathan Cameron
2024-10-24 9:11 ` [PATCH 5/7] iio: imu: inv_mpu6050: " Julien Stephan
2024-10-24 12:16 ` Jean-Baptiste Maneyrol
2024-10-26 12:27 ` Jonathan Cameron
2024-10-24 9:11 ` [PATCH 6/7] iio: light: stk3310: " Julien Stephan
2024-10-26 12:30 ` Jonathan Cameron
2024-10-24 9:11 ` [PATCH 7/7] iio: fix write_event_config signature Julien Stephan
2024-10-26 12:59 ` Jonathan Cameron
2024-10-30 14:07 ` Julien Stephan
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).