Linux IIO development
 help / color / mirror / Atom feed
* [PATCH] iio: humidity: ens210: Fix missing I2C functionality checks
@ 2026-05-05  9:02 Salah Triki
  2026-05-05  9:07 ` Andy Shevchenko
  0 siblings, 1 reply; 4+ messages in thread
From: Salah Triki @ 2026-05-05  9:02 UTC (permalink / raw)
  To: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko
  Cc: linux-iio, linux-kernel, Salah Triki

The ENS210 driver uses both `i2c_smbus_read_byte_data()` and
`i2c_smbus_read_word_data()` during the read and probe phases.
However, `i2c_check_functionality()` was only checking for block reads
and simple byte writes, which could lead to hardware interface
incompatibilities or errors on certain adapters that do not natively
support SMBus word or byte data transactions.

Add `I2C_FUNC_SMBUS_READ_BYTE_DATA` and `I2C_FUNC_SMBUS_READ_WORD_DATA`
to the functionality check mask to ensure the adapter supports the
required operations before communication begins.

Fixes: c524fbca672e ("iio: humidity: Add support for ENS210")
Signed-off-by: Salah Triki <salah.triki@gmail.com>
---
 drivers/iio/humidity/ens210.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/iio/humidity/ens210.c b/drivers/iio/humidity/ens210.c
index 77418d97f30d..e8633f247b10 100644
--- a/drivers/iio/humidity/ens210.c
+++ b/drivers/iio/humidity/ens210.c
@@ -204,6 +204,8 @@ static int ens210_probe(struct i2c_client *client)
 	if (!i2c_check_functionality(client->adapter,
 				     I2C_FUNC_SMBUS_WRITE_BYTE_DATA |
 				     I2C_FUNC_SMBUS_WRITE_BYTE |
+				     I2C_FUNC_SMBUS_READ_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] 4+ messages in thread

* Re: [PATCH] iio: humidity: ens210: Fix missing I2C functionality checks
  2026-05-05  9:02 [PATCH] iio: humidity: ens210: Fix missing I2C functionality checks Salah Triki
@ 2026-05-05  9:07 ` Andy Shevchenko
  2026-05-05  9:28   ` Salah Triki
  0 siblings, 1 reply; 4+ messages in thread
From: Andy Shevchenko @ 2026-05-05  9:07 UTC (permalink / raw)
  To: Salah Triki
  Cc: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
	linux-iio, linux-kernel

On Tue, May 05, 2026 at 10:02:47AM +0100, Salah Triki wrote:
> The ENS210 driver uses both `i2c_smbus_read_byte_data()` and
> `i2c_smbus_read_word_data()` during the read and probe phases.
> However, `i2c_check_functionality()` was only checking for block reads
> and simple byte writes, which could lead to hardware interface
> incompatibilities or errors on certain adapters that do not natively
> support SMBus word or byte data transactions.
> 
> Add `I2C_FUNC_SMBUS_READ_BYTE_DATA` and `I2C_FUNC_SMBUS_READ_WORD_DATA`
> to the functionality check mask to ensure the adapter supports the
> required operations before communication begins.

Can we rather modify the driver to use SW emulation for these cases?

-- 
With Best Regards,
Andy Shevchenko



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

* Re: [PATCH] iio: humidity: ens210: Fix missing I2C functionality checks
  2026-05-05  9:07 ` Andy Shevchenko
@ 2026-05-05  9:28   ` Salah Triki
  2026-05-05  9:36     ` Andy Shevchenko
  0 siblings, 1 reply; 4+ messages in thread
From: Salah Triki @ 2026-05-05  9:28 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
	linux-iio, linux-kernel

On Tue, May 05, 2026 at 12:07:04PM +0300, Andy Shevchenko wrote:
> On Tue, May 05, 2026 at 10:02:47AM +0100, Salah Triki wrote:
> > The ENS210 driver uses both `i2c_smbus_read_byte_data()` and
> > `i2c_smbus_read_word_data()` during the read and probe phases.
> > However, `i2c_check_functionality()` was only checking for block reads
> > and simple byte writes, which could lead to hardware interface
> > incompatibilities or errors on certain adapters that do not natively
> > support SMBus word or byte data transactions.
> > 
> > Add `I2C_FUNC_SMBUS_READ_BYTE_DATA` and `I2C_FUNC_SMBUS_READ_WORD_DATA`
> > to the functionality check mask to ensure the adapter supports the
> > required operations before communication begins.
> 
> Can we rather modify the driver to use SW emulation for these cases?
> 
> -- 
> With Best Regards,
> Andy Shevchenko
> 
> 

I'll update the probe function to check for I2C_FUNC_SMBUS_EMUL instead of
the individual functions.

Thanks for the suggestion.

Best regards
--
Salah Triki

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

* Re: [PATCH] iio: humidity: ens210: Fix missing I2C functionality checks
  2026-05-05  9:28   ` Salah Triki
@ 2026-05-05  9:36     ` Andy Shevchenko
  0 siblings, 0 replies; 4+ messages in thread
From: Andy Shevchenko @ 2026-05-05  9:36 UTC (permalink / raw)
  To: Salah Triki
  Cc: Andy Shevchenko, Jonathan Cameron, David Lechner, Nuno Sá,
	Andy Shevchenko, linux-iio, linux-kernel

On Tue, May 5, 2026 at 12:28 PM Salah Triki <salah.triki@gmail.com> wrote:
> On Tue, May 05, 2026 at 12:07:04PM +0300, Andy Shevchenko wrote:
> > On Tue, May 05, 2026 at 10:02:47AM +0100, Salah Triki wrote:
> > > The ENS210 driver uses both `i2c_smbus_read_byte_data()` and
> > > `i2c_smbus_read_word_data()` during the read and probe phases.
> > > However, `i2c_check_functionality()` was only checking for block reads
> > > and simple byte writes, which could lead to hardware interface
> > > incompatibilities or errors on certain adapters that do not natively
> > > support SMBus word or byte data transactions.
> > >
> > > Add `I2C_FUNC_SMBUS_READ_BYTE_DATA` and `I2C_FUNC_SMBUS_READ_WORD_DATA`
> > > to the functionality check mask to ensure the adapter supports the
> > > required operations before communication begins.
> >
> > Can we rather modify the driver to use SW emulation for these cases?
>
> I'll update the probe function to check for I2C_FUNC_SMBUS_EMUL instead of
> the individual functions.

Hmm... But will it work with the drivers that do not provide EMUL, but
the native functions?
Please, carefully check all this and come up with a solution that
works for most of the cases if not all.

-- 
With Best Regards,
Andy Shevchenko

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

end of thread, other threads:[~2026-05-05  9:36 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-05  9:02 [PATCH] iio: humidity: ens210: Fix missing I2C functionality checks Salah Triki
2026-05-05  9:07 ` Andy Shevchenko
2026-05-05  9:28   ` Salah Triki
2026-05-05  9:36     ` Andy Shevchenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox