On Wed, 13 Mar 2024 21:04:46 +0200 Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote: > On Wed, Mar 13, 2024 at 06:40:05PM +0100, Vasileios Amoiridis wrote: > > The read_press/read_humid functions need the updated t_fine value > > read_press()/read_humid() > > > > in order to calculate the current pressure/humidity. Temperature > > reads should be removed from the read_press/read_humid functions > > read_press()/read_humid() > > > and should be placed in the oneshot captures before the pressure > > and humidity reads. This makes the code more intuitive. > > ... > > > + if (strcmp(indio_dev->name, "bmp580")) > > + data->chip_info->read_temp(data); > > + > > > + if (strcmp(indio_dev->name, "bmp580")) > > + data->chip_info->read_temp(data); > > Yeah, not a fan of the strcmp(). > Yes - that's a non starter. Add a flag to say it is necessary to chip_info that doesn't rely on name matching. If you do it the way you have here, you have to add another strcmp for each new device supported that needs this code to run. Add a flag and you just set that in the chip_info structure. Much more flexible and extensible. Usual description of this is "when you can do things with data rather than code, do it with data". Jonathan