Re: [PATCH v2 4/6] iio: pressure: Simplify and make more clear temperature readings

From: Jonathan Cameron
Date: Thu Mar 14 2024 - 10:51:34 EST


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