iio: chemical: atlas-ph-sensor: correct IIO_TEMP values to millicelsius
diff mbox series

Message ID 20181231030701.29789-1-matt.ranostay@konsulko.com
State New
Headers show
Series
  • iio: chemical: atlas-ph-sensor: correct IIO_TEMP values to millicelsius
Related show

Commit Message

Matt Ranostay Dec. 31, 2018, 3:07 a.m. UTC
IIO_TEMP scale value for temperature was incorrect and not in millicelsius
as required by the ABI documentation.

Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
---
 drivers/iio/chemical/atlas-ph-sensor.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

Comments

Jonathan Cameron Jan. 5, 2019, 4:34 p.m. UTC | #1
On Sun, 30 Dec 2018 19:07:01 -0800
Matt Ranostay <matt.ranostay@konsulko.com> wrote:

> IIO_TEMP scale value for temperature was incorrect and not in millicelsius
> as required by the ABI documentation.
> 
> Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
Ideally would have had a fixes tag.  Looks superficially like this
goes back a long way but always nice to confirm how far :)

Anyhow, given we are in the merge window, I'll pick this up once rc1
is out and mark it for stable etc.

Give me a poke if I seem to have lost it in a week or so.

Thanks,

Jonathan

> ---
>  drivers/iio/chemical/atlas-ph-sensor.c | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/iio/chemical/atlas-ph-sensor.c b/drivers/iio/chemical/atlas-ph-sensor.c
> index a406ad31b096..3a20cb5d9bff 100644
> --- a/drivers/iio/chemical/atlas-ph-sensor.c
> +++ b/drivers/iio/chemical/atlas-ph-sensor.c
> @@ -444,9 +444,8 @@ static int atlas_read_raw(struct iio_dev *indio_dev,
>  	case IIO_CHAN_INFO_SCALE:
>  		switch (chan->type) {
>  		case IIO_TEMP:
> -			*val = 1; /* 0.01 */
> -			*val2 = 100;
> -			break;
> +			*val = 10;
> +			return IIO_VAL_INT;
>  		case IIO_PH:
>  			*val = 1; /* 0.001 */
>  			*val2 = 1000;
> @@ -477,7 +476,7 @@ static int atlas_write_raw(struct iio_dev *indio_dev,
>  			   int val, int val2, long mask)
>  {
>  	struct atlas_data *data = iio_priv(indio_dev);
> -	__be32 reg = cpu_to_be32(val);
> +	__be32 reg = cpu_to_be32(val / 10);
>  
>  	if (val2 != 0 || val < 0 || val > 20000)
>  		return -EINVAL;
Matt Ranostay Jan. 5, 2019, 10:44 p.m. UTC | #2
On Sat, Jan 5, 2019 at 8:34 AM Jonathan Cameron <jic23@kernel.org> wrote:
>
> On Sun, 30 Dec 2018 19:07:01 -0800
> Matt Ranostay <matt.ranostay@konsulko.com> wrote:
>
> > IIO_TEMP scale value for temperature was incorrect and not in millicelsius
> > as required by the ABI documentation.
> >
> > Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
> Ideally would have had a fixes tag.  Looks superficially like this
> goes back a long way but always nice to confirm how far :)
>

Fixes: 27dec00ecf2d (iio: chemical: add Atlas pH-SM sensor support)

And yes it goes back a far way..., and guess this happens when one
doesn't use the libiio for userspace development :).

> Anyhow, given we are in the merge window, I'll pick this up once rc1
> is out and mark it for stable etc.
>
> Give me a poke if I seem to have lost it in a week or so.
>
> Thanks,
>
> Jonathan
>
> > ---
> >  drivers/iio/chemical/atlas-ph-sensor.c | 7 +++----
> >  1 file changed, 3 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/iio/chemical/atlas-ph-sensor.c b/drivers/iio/chemical/atlas-ph-sensor.c
> > index a406ad31b096..3a20cb5d9bff 100644
> > --- a/drivers/iio/chemical/atlas-ph-sensor.c
> > +++ b/drivers/iio/chemical/atlas-ph-sensor.c
> > @@ -444,9 +444,8 @@ static int atlas_read_raw(struct iio_dev *indio_dev,
> >       case IIO_CHAN_INFO_SCALE:
> >               switch (chan->type) {
> >               case IIO_TEMP:
> > -                     *val = 1; /* 0.01 */
> > -                     *val2 = 100;
> > -                     break;
> > +                     *val = 10;
> > +                     return IIO_VAL_INT;
> >               case IIO_PH:
> >                       *val = 1; /* 0.001 */
> >                       *val2 = 1000;
> > @@ -477,7 +476,7 @@ static int atlas_write_raw(struct iio_dev *indio_dev,
> >                          int val, int val2, long mask)
> >  {
> >       struct atlas_data *data = iio_priv(indio_dev);
> > -     __be32 reg = cpu_to_be32(val);
> > +     __be32 reg = cpu_to_be32(val / 10);
> >
> >       if (val2 != 0 || val < 0 || val > 20000)
> >               return -EINVAL;
>
Jonathan Cameron Jan. 12, 2019, 5:07 p.m. UTC | #3
On Sat, 5 Jan 2019 14:44:18 -0800
Matt Ranostay <matt.ranostay@konsulko.com> wrote:

> On Sat, Jan 5, 2019 at 8:34 AM Jonathan Cameron <jic23@kernel.org> wrote:
> >
> > On Sun, 30 Dec 2018 19:07:01 -0800
> > Matt Ranostay <matt.ranostay@konsulko.com> wrote:
> >  
> > > IIO_TEMP scale value for temperature was incorrect and not in millicelsius
> > > as required by the ABI documentation.
> > >
> > > Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>  
> > Ideally would have had a fixes tag.  Looks superficially like this
> > goes back a long way but always nice to confirm how far :)
> >  
> 
> Fixes: 27dec00ecf2d (iio: chemical: add Atlas pH-SM sensor support)
> 
> And yes it goes back a far way..., and guess this happens when one
> doesn't use the libiio for userspace development :).

Applied to the fixes-togreg branch of iio.git and marked for stable.

Thanks for chasing down that tag for me.

Jonathan

> 
> > Anyhow, given we are in the merge window, I'll pick this up once rc1
> > is out and mark it for stable etc.
> >
> > Give me a poke if I seem to have lost it in a week or so.
> >
> > Thanks,
> >
> > Jonathan
> >  
> > > ---
> > >  drivers/iio/chemical/atlas-ph-sensor.c | 7 +++----
> > >  1 file changed, 3 insertions(+), 4 deletions(-)
> > >
> > > diff --git a/drivers/iio/chemical/atlas-ph-sensor.c b/drivers/iio/chemical/atlas-ph-sensor.c
> > > index a406ad31b096..3a20cb5d9bff 100644
> > > --- a/drivers/iio/chemical/atlas-ph-sensor.c
> > > +++ b/drivers/iio/chemical/atlas-ph-sensor.c
> > > @@ -444,9 +444,8 @@ static int atlas_read_raw(struct iio_dev *indio_dev,
> > >       case IIO_CHAN_INFO_SCALE:
> > >               switch (chan->type) {
> > >               case IIO_TEMP:
> > > -                     *val = 1; /* 0.01 */
> > > -                     *val2 = 100;
> > > -                     break;
> > > +                     *val = 10;
> > > +                     return IIO_VAL_INT;
> > >               case IIO_PH:
> > >                       *val = 1; /* 0.001 */
> > >                       *val2 = 1000;
> > > @@ -477,7 +476,7 @@ static int atlas_write_raw(struct iio_dev *indio_dev,
> > >                          int val, int val2, long mask)
> > >  {
> > >       struct atlas_data *data = iio_priv(indio_dev);
> > > -     __be32 reg = cpu_to_be32(val);
> > > +     __be32 reg = cpu_to_be32(val / 10);
> > >
> > >       if (val2 != 0 || val < 0 || val > 20000)
> > >               return -EINVAL;  
> >

Patch
diff mbox series

diff --git a/drivers/iio/chemical/atlas-ph-sensor.c b/drivers/iio/chemical/atlas-ph-sensor.c
index a406ad31b096..3a20cb5d9bff 100644
--- a/drivers/iio/chemical/atlas-ph-sensor.c
+++ b/drivers/iio/chemical/atlas-ph-sensor.c
@@ -444,9 +444,8 @@  static int atlas_read_raw(struct iio_dev *indio_dev,
 	case IIO_CHAN_INFO_SCALE:
 		switch (chan->type) {
 		case IIO_TEMP:
-			*val = 1; /* 0.01 */
-			*val2 = 100;
-			break;
+			*val = 10;
+			return IIO_VAL_INT;
 		case IIO_PH:
 			*val = 1; /* 0.001 */
 			*val2 = 1000;
@@ -477,7 +476,7 @@  static int atlas_write_raw(struct iio_dev *indio_dev,
 			   int val, int val2, long mask)
 {
 	struct atlas_data *data = iio_priv(indio_dev);
-	__be32 reg = cpu_to_be32(val);
+	__be32 reg = cpu_to_be32(val / 10);
 
 	if (val2 != 0 || val < 0 || val > 20000)
 		return -EINVAL;