[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20170930213138.5bad87c7@archlinux>
Date: Sat, 30 Sep 2017 21:31:38 +0100
From: Jonathan Cameron <jic23@...nel.org>
To: Stefan Brüns <stefan.bruens@...h-aachen.de>
Cc: <linux-iio@...r.kernel.org>, Rob Herring <robh@...nel.org>,
Peter Meerwald-Stadler <pmeerw@...erw.net>,
<linux-kernel@...r.kernel.org>,
Manivannan Sadhasivam <manivannanece23@...il.com>,
Lars-Peter Clausen <lars@...afoo.de>,
Hartmut Knaack <knaack.h@....de>
Subject: Re: [PATCH v3 4/4] iio: light: vl6180: Correct ALS scale for
non-default gain/integration time
On Sun, 24 Sep 2017 23:59:20 +0200
Stefan Brüns <stefan.bruens@...h-aachen.de> wrote:
> The reported scale was only correct for the default settings of 100 ms
> integration time and gain 1.
>
> This aligns the reported scale with the behaviour of any other IIO driver
> and the documented ABI, but may require userspace changes if someone uses
> non-default settings.
>
> Signed-off-by: Stefan Brüns <stefan.bruens@...h-aachen.de>
Applied to the togreg branch of iio.git and pushed out as testing for
the autobuilders to play with it.
Whilst this is clearly a fix, it isn't a regression. As such the extent
of the changes mean I've queued this up for the next merge window rather
than going in quicker as a fix.
Thanks,
Jonathan
>
> ---
>
> Changes in v3: None
> Changes in v2: None
>
> drivers/iio/light/vl6180.c | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/iio/light/vl6180.c b/drivers/iio/light/vl6180.c
> index 49e9f92cd116..67f8beb84fc3 100644
> --- a/drivers/iio/light/vl6180.c
> +++ b/drivers/iio/light/vl6180.c
> @@ -315,9 +315,12 @@ static int vl6180_read_raw(struct iio_dev *indio_dev,
> case IIO_CHAN_INFO_SCALE:
> switch (chan->type) {
> case IIO_LIGHT:
> - *val = 0; /* one ALS count is 0.32 Lux */
> - *val2 = 320000;
> - break;
> + /* one ALS count is 0.32 Lux @ gain 1, IT 100 ms */
> + *val = 32000; /* 0.32 * 1000 * 100 */
> + *val2 = data->als_gain_milli * data->als_it_ms;
> +
> + return IIO_VAL_FRACTIONAL;
> +
> case IIO_DISTANCE:
> *val = 0; /* sensor reports mm, scale to meter */
> *val2 = 1000;
Powered by blists - more mailing lists