* [PATCH v8] iio: humidity: ens210: Extend I2C functionality check
@ 2026-08-19 10:31 Salah Triki
2026-08-23 0:34 ` Jonathan Cameron
0 siblings, 1 reply; 2+ messages in thread
From: Salah Triki @ 2026-08-19 10:31 UTC (permalink / raw)
To: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
Stepan Ionichev
Cc: linux-iio, linux-kernel, Salah Triki
The ENS210 driver uses byte data read/write, word data read, and block
data read transactions. However, the probe function checks for
I2C_FUNC_SMBUS_WRITE_BYTE (which is unused) and misses the check for word
data reads.
Update the functionality check to strictly match the transactions used by
the driver by removing the unused flag and adding the missing byte and word
read capabilities.
Signed-off-by: Salah Triki <salah.triki@gmail.com>
---
Changes since v7:
- Fixed functionality mask based on code analysis by Stepan Ionichev and
Jonathan Cameron:
- Removed unused I2C_FUNC_SMBUS_WRITE_BYTE.
- Replaced I2C_FUNC_SMBUS_WRITE_BYTE_DATA with I2C_FUNC_SMBUS_BYTE_DATA.
- Used I2C_FUNC_SMBUS_READ_WORD_DATA
Changes since v6:
- Replaced the incorrect use of I2C_FUNC_SMBUS_EMUL with an explicit
list of required SMBus functionalities as requested by Jonathan Cameron.
- Used combined macros (BYTE_DATA, WORD_DATA) to simplify the check.
Changes since v5:
- Changed patch title from "Fix missing I2C functionality checks" to
"Simplify I2C functionality check" to reflect the new approach.
- Dropped the Fixes tag as the change is now considered hardening rather
than a bug fix.
- Replaced individual functionality checks with a single check for
I2C_FUNC_SMBUS_EMUL as suggested by Jonathan Cameron.
Changes since v4:
- Fixed the alignment and indentation of the I2C functionality check
per Andy's review.
Changes since v3:
- Fixed the alignment and indentation of the I2C functionality check
per Andy's review.
Changes since v2:
- Fixed the alignment and indentation of the I2C functionality check
per Maxime's review.
Changes since v1:
- Updated the I2C functionality test to check for both required native
operations and SMBus emulation (`I2C_FUNC_SMBUS_EMUL`)
drivers/iio/humidity/ens210.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/iio/humidity/ens210.c b/drivers/iio/humidity/ens210.c
index 81276195152b..4bdd37e7227b 100644
--- a/drivers/iio/humidity/ens210.c
+++ b/drivers/iio/humidity/ens210.c
@@ -202,8 +202,8 @@ static int ens210_probe(struct i2c_client *client)
int ret;
if (!i2c_check_functionality(client->adapter,
- I2C_FUNC_SMBUS_WRITE_BYTE_DATA |
- I2C_FUNC_SMBUS_WRITE_BYTE |
+ I2C_FUNC_SMBUS_BYTE_DATA |
+ I2C_FUNC_SMBUS_READ_WORD_DATA |
I2C_FUNC_SMBUS_READ_I2C_BLOCK)) {
return dev_err_probe(&client->dev, -EOPNOTSUPP,
"adapter does not support some i2c transactions\n");
--
2.43.0
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH v8] iio: humidity: ens210: Extend I2C functionality check
2026-08-19 10:31 [PATCH v8] iio: humidity: ens210: Extend I2C functionality check Salah Triki
@ 2026-08-23 0:34 ` Jonathan Cameron
0 siblings, 0 replies; 2+ messages in thread
From: Jonathan Cameron @ 2026-08-23 0:34 UTC (permalink / raw)
To: Salah Triki
Cc: David Lechner, Nuno Sá, Andy Shevchenko, Stepan Ionichev,
linux-iio, linux-kernel
On Wed, 19 Aug 2026 11:31:09 +0100
Salah Triki <salah.triki@gmail.com> wrote:
> The ENS210 driver uses byte data read/write, word data read, and block
> data read transactions. However, the probe function checks for
> I2C_FUNC_SMBUS_WRITE_BYTE (which is unused) and misses the check for word
> data reads.
>
> Update the functionality check to strictly match the transactions used by
> the driver by removing the unused flag and adding the missing byte and word
> read capabilities.
>
> Signed-off-by: Salah Triki <salah.triki@gmail.com>
I am a bit curious about whether any modern smbus capable controllers actually
support only a subset and without that info I don't want to see lots
of patches adding these checks
In this case there was a wrong check though so I'm very happy to see
that tidied!
Applied to the testing branch of iio.git
Thanks
Jonathan
> ---
> Changes since v7:
> - Fixed functionality mask based on code analysis by Stepan Ionichev and
> Jonathan Cameron:
> - Removed unused I2C_FUNC_SMBUS_WRITE_BYTE.
> - Replaced I2C_FUNC_SMBUS_WRITE_BYTE_DATA with I2C_FUNC_SMBUS_BYTE_DATA.
> - Used I2C_FUNC_SMBUS_READ_WORD_DATA
>
> Changes since v6:
> - Replaced the incorrect use of I2C_FUNC_SMBUS_EMUL with an explicit
> list of required SMBus functionalities as requested by Jonathan Cameron.
> - Used combined macros (BYTE_DATA, WORD_DATA) to simplify the check.
>
> Changes since v5:
> - Changed patch title from "Fix missing I2C functionality checks" to
> "Simplify I2C functionality check" to reflect the new approach.
> - Dropped the Fixes tag as the change is now considered hardening rather
> than a bug fix.
> - Replaced individual functionality checks with a single check for
> I2C_FUNC_SMBUS_EMUL as suggested by Jonathan Cameron.
>
> Changes since v4:
> - Fixed the alignment and indentation of the I2C functionality check
> per Andy's review.
>
> Changes since v3:
> - Fixed the alignment and indentation of the I2C functionality check
> per Andy's review.
>
> Changes since v2:
> - Fixed the alignment and indentation of the I2C functionality check
> per Maxime's review.
>
> Changes since v1:
> - Updated the I2C functionality test to check for both required native
> operations and SMBus emulation (`I2C_FUNC_SMBUS_EMUL`)
>
> drivers/iio/humidity/ens210.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/iio/humidity/ens210.c b/drivers/iio/humidity/ens210.c
> index 81276195152b..4bdd37e7227b 100644
> --- a/drivers/iio/humidity/ens210.c
> +++ b/drivers/iio/humidity/ens210.c
> @@ -202,8 +202,8 @@ static int ens210_probe(struct i2c_client *client)
> int ret;
>
> if (!i2c_check_functionality(client->adapter,
> - I2C_FUNC_SMBUS_WRITE_BYTE_DATA |
> - I2C_FUNC_SMBUS_WRITE_BYTE |
> + I2C_FUNC_SMBUS_BYTE_DATA |
> + I2C_FUNC_SMBUS_READ_WORD_DATA |
> I2C_FUNC_SMBUS_READ_I2C_BLOCK)) {
> return dev_err_probe(&client->dev, -EOPNOTSUPP,
> "adapter does not support some i2c transactions\n");
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-08-23 0:34 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-19 10:31 [PATCH v8] iio: humidity: ens210: Extend I2C functionality check Salah Triki
2026-08-23 0:34 ` Jonathan Cameron
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox