Messages in this thread | | | Date | Sun, 11 Aug 2019 09:32:43 +0100 | From | Jonathan Cameron <> | Subject | Re: [PATCH] iio: chemical: bme680: Fix pressure and humidity ABI mismatch |
| |
On Thu, 8 Aug 2019 21:13:50 +0530 Himanshu Jha <himanshujha199640@gmail.com> wrote:
> Standard ABI for reporting pressure is kilopascal and for > relative humidity it is millipercent. > > What: /sys/bus/iio/devices/iio:deviceX/in_pressureY_input > What: /sys/bus/iio/devices/iio:deviceX/in_pressure_input > KernelVersion: 3.8 > Contact: linux-iio@vger.kernel.org > Description: > Scaled pressure measurement from channel Y, in kilopascal. > > What: /sys/bus/iio/devices/iio:deviceX/in_humidityrelative_input > KernelVersion: 3.14 > Contact: linux-iio@vger.kernel.org > Description: > Scaled humidity measurement in milli percent. > > Currently pressure is reported in hectopascal(hPa) and relative humidity > in percent. Hence fix this ABI mismatch conforming to the standard ABI. > > Fixes: 1b3bd8592780 ("iio: chemical: Add support for Bosch BME680 sensor") > Signed-off-by: Himanshu Jha <himanshujha199640@gmail.com>
Hopefully any users will cope with their scripts getting broken by this.
I'm going to let this one sit for a little longer to give others time to take a look.
Give me a poke if it looks like I've lost it down the back of the sofa in a week or two.
Thanks,
Jonathan
> --- > > While cleaning this mess I wonder about the gas channel and there > exists no `in_resistance_input` in standard ABI :-( > > We only have: > > What: /sys/bus/iio/devices/iio:deviceX/in_resistance_raw > What: /sys/bus/iio/devices/iio:deviceX/in_resistanceX_raw > What: /sys/bus/iio/devices/iio:deviceX/out_resistance_raw > What: /sys/bus/iio/devices/iio:deviceX/out_resistanceX_raw > KernelVersion: 4.3 > Contact: linux-iio@vger.kernel.org > Description: > Raw (unscaled no offset etc.) resistance reading that can be processed > into an ohm value. > > The sensor outputs processed value which is reported as is. > > So, does it need a new ABI ?
New documentation as the ABI is clearly already there. Good for completeness but that description for _raw makes it obvious what the units will be etc so hopefully we don't have any disagreement between drivers.
> > drivers/iio/chemical/bme680_core.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/iio/chemical/bme680_core.c b/drivers/iio/chemical/bme680_core.c > index ccde4c65ff93..28cc96d1e3c8 100644 > --- a/drivers/iio/chemical/bme680_core.c > +++ b/drivers/iio/chemical/bme680_core.c > @@ -670,7 +670,7 @@ static int bme680_read_press(struct bme680_data *data, > } > > *val = bme680_compensate_press(data, adc_press); > - *val2 = 100; > + *val2 = 1000; > return IIO_VAL_FRACTIONAL; > } > > @@ -704,7 +704,7 @@ static int bme680_read_humid(struct bme680_data *data, > comp_humidity = bme680_compensate_humid(data, adc_humidity); > > *val = comp_humidity; > - *val2 = 1000; > + *val2 = 1000000; > return IIO_VAL_FRACTIONAL; > } >
| |