Subject: [PATCH] iio: light: apds9960: fix wrong register for gesture gain

Gesture Gain Control is in REG_GCONF_2 (0xa3), not in REG_CONFIG_2 (0x90).

Fixes: aff268cd532e ("iio: light: add APDS9960 ALS + promixity driver")

Signed-off-by: Alejandro Concepcion-Rodriguez <[email protected]>
---
drivers/iio/light/apds9960.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/iio/light/apds9960.c b/drivers/iio/light/apds9960.c
index b62c139baf41..38d4c7644bef 100644
--- a/drivers/iio/light/apds9960.c
+++ b/drivers/iio/light/apds9960.c
@@ -54,9 +54,6 @@
#define APDS9960_REG_CONTROL_PGAIN_MASK_SHIFT 2

#define APDS9960_REG_CONFIG_2 0x90
-#define APDS9960_REG_CONFIG_2_GGAIN_MASK 0x60
-#define APDS9960_REG_CONFIG_2_GGAIN_MASK_SHIFT 5
-
#define APDS9960_REG_ID 0x92

#define APDS9960_REG_STATUS 0x93
@@ -77,6 +74,9 @@
#define APDS9960_REG_GCONF_1_GFIFO_THRES_MASK_SHIFT 6

#define APDS9960_REG_GCONF_2 0xa3
+#define APDS9960_REG_GCONF_2_GGAIN_MASK 0x60
+#define APDS9960_REG_GCONF_2_GGAIN_MASK_SHIFT 5
+
#define APDS9960_REG_GOFFSET_U 0xa4
#define APDS9960_REG_GOFFSET_D 0xa5
#define APDS9960_REG_GPULSE 0xa6
@@ -396,9 +396,9 @@ static int apds9960_set_pxs_gain(struct apds9960_data *data, int val)
}

ret = regmap_update_bits(data->regmap,
- APDS9960_REG_CONFIG_2,
- APDS9960_REG_CONFIG_2_GGAIN_MASK,
- idx << APDS9960_REG_CONFIG_2_GGAIN_MASK_SHIFT);
+ APDS9960_REG_GCONF_2,
+ APDS9960_REG_GCONF_2_GGAIN_MASK,
+ idx << APDS9960_REG_GCONF_2_GGAIN_MASK_SHIFT);
if (!ret)
data->pxs_gain = idx;
mutex_unlock(&data->lock);
--
2.34.1


2022-11-06 06:09:58

by Matt Ranostay

[permalink] [raw]
Subject: Re: [PATCH] iio: light: apds9960: fix wrong register for gesture gain

On Sun, Nov 6, 2022 at 9:56 AM Alejandro Concepción Rodríguez
<[email protected]> wrote:
>
> Gesture Gain Control is in REG_GCONF_2 (0xa3), not in REG_CONFIG_2 (0x90).
>
> Fixes: aff268cd532e ("iio: light: add APDS9960 ALS + promixity driver")
>

Good find. Odd that nobody ran into that issue before :/

NOTE: Sorry for the double emails to some.. seems gmail dropped my
Plain Text default setting and set it to HTML *sigh*

Acked-by: Matt Ranostay <[email protected]>

> Signed-off-by: Alejandro Concepcion-Rodriguez <[email protected]>
> ---
> drivers/iio/light/apds9960.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/iio/light/apds9960.c b/drivers/iio/light/apds9960.c
> index b62c139baf41..38d4c7644bef 100644
> --- a/drivers/iio/light/apds9960.c
> +++ b/drivers/iio/light/apds9960.c
> @@ -54,9 +54,6 @@
> #define APDS9960_REG_CONTROL_PGAIN_MASK_SHIFT 2
>
> #define APDS9960_REG_CONFIG_2 0x90
> -#define APDS9960_REG_CONFIG_2_GGAIN_MASK 0x60
> -#define APDS9960_REG_CONFIG_2_GGAIN_MASK_SHIFT 5
> -
> #define APDS9960_REG_ID 0x92
>
> #define APDS9960_REG_STATUS 0x93
> @@ -77,6 +74,9 @@
> #define APDS9960_REG_GCONF_1_GFIFO_THRES_MASK_SHIFT 6
>
> #define APDS9960_REG_GCONF_2 0xa3
> +#define APDS9960_REG_GCONF_2_GGAIN_MASK 0x60
> +#define APDS9960_REG_GCONF_2_GGAIN_MASK_SHIFT 5
> +
> #define APDS9960_REG_GOFFSET_U 0xa4
> #define APDS9960_REG_GOFFSET_D 0xa5
> #define APDS9960_REG_GPULSE 0xa6
> @@ -396,9 +396,9 @@ static int apds9960_set_pxs_gain(struct apds9960_data *data, int val)
> }
>
> ret = regmap_update_bits(data->regmap,
> - APDS9960_REG_CONFIG_2,
> - APDS9960_REG_CONFIG_2_GGAIN_MASK,
> - idx << APDS9960_REG_CONFIG_2_GGAIN_MASK_SHIFT);
> + APDS9960_REG_GCONF_2,
> + APDS9960_REG_GCONF_2_GGAIN_MASK,
> + idx << APDS9960_REG_GCONF_2_GGAIN_MASK_SHIFT);
> if (!ret)
> data->pxs_gain = idx;
> mutex_unlock(&data->lock);
> --
> 2.34.1

2022-11-06 18:23:08

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH] iio: light: apds9960: fix wrong register for gesture gain

On Sun, 6 Nov 2022 13:42:24 +0800
Matt Ranostay <[email protected]> wrote:

> On Sun, Nov 6, 2022 at 9:56 AM Alejandro Concepción Rodríguez
> <[email protected]> wrote:
> >
> > Gesture Gain Control is in REG_GCONF_2 (0xa3), not in REG_CONFIG_2 (0x90).
> >
> > Fixes: aff268cd532e ("iio: light: add APDS9960 ALS + promixity driver")
> >
There shouldn't be any blank lines in the tags block. I fixed this whilst applying.
>
> Good find. Odd that nobody ran into that issue before :/
>
> NOTE: Sorry for the double emails to some.. seems gmail dropped my
> Plain Text default setting and set it to HTML *sigh*
>
> Acked-by: Matt Ranostay <[email protected]>
>

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

Thanks,

Jonathan

> > Signed-off-by: Alejandro Concepcion-Rodriguez <[email protected]>
> > ---
> > drivers/iio/light/apds9960.c | 12 ++++++------
> > 1 file changed, 6 insertions(+), 6 deletions(-)
> >
> > diff --git a/drivers/iio/light/apds9960.c b/drivers/iio/light/apds9960.c
> > index b62c139baf41..38d4c7644bef 100644
> > --- a/drivers/iio/light/apds9960.c
> > +++ b/drivers/iio/light/apds9960.c
> > @@ -54,9 +54,6 @@
> > #define APDS9960_REG_CONTROL_PGAIN_MASK_SHIFT 2
> >
> > #define APDS9960_REG_CONFIG_2 0x90
> > -#define APDS9960_REG_CONFIG_2_GGAIN_MASK 0x60
> > -#define APDS9960_REG_CONFIG_2_GGAIN_MASK_SHIFT 5
> > -
> > #define APDS9960_REG_ID 0x92
> >
> > #define APDS9960_REG_STATUS 0x93
> > @@ -77,6 +74,9 @@
> > #define APDS9960_REG_GCONF_1_GFIFO_THRES_MASK_SHIFT 6
> >
> > #define APDS9960_REG_GCONF_2 0xa3
> > +#define APDS9960_REG_GCONF_2_GGAIN_MASK 0x60
> > +#define APDS9960_REG_GCONF_2_GGAIN_MASK_SHIFT 5
> > +
> > #define APDS9960_REG_GOFFSET_U 0xa4
> > #define APDS9960_REG_GOFFSET_D 0xa5
> > #define APDS9960_REG_GPULSE 0xa6
> > @@ -396,9 +396,9 @@ static int apds9960_set_pxs_gain(struct apds9960_data *data, int val)
> > }
> >
> > ret = regmap_update_bits(data->regmap,
> > - APDS9960_REG_CONFIG_2,
> > - APDS9960_REG_CONFIG_2_GGAIN_MASK,
> > - idx << APDS9960_REG_CONFIG_2_GGAIN_MASK_SHIFT);
> > + APDS9960_REG_GCONF_2,
> > + APDS9960_REG_GCONF_2_GGAIN_MASK,
> > + idx << APDS9960_REG_GCONF_2_GGAIN_MASK_SHIFT);
> > if (!ret)
> > data->pxs_gain = idx;
> > mutex_unlock(&data->lock);
> > --
> > 2.34.1