diff mbox series

iio: light: apds9306: fix max_scale_nano values

Message ID 20250112-apds9306_nano_vals-v1-1-82fb145d0b16@gmail.com (mailing list archive)
State Accepted
Headers show
Series iio: light: apds9306: fix max_scale_nano values | expand

Commit Message

Javier Carrasco Jan. 12, 2025, 12:08 a.m. UTC
The two provided max_scale_nano values must be multiplied by 100 and 10
respectively to achieve nano units. According to the comments:

Max scale for apds0306 is 16.326432 → the fractional part is 0.326432,
which is 326432000 in NANO. The current value is 3264320.

Max scale for apds0306-065 is 14.09721 → the fractional part is 0.09712,
which is 97120000 in NANO. The current value is 9712000.

Update max_scale_nano initialization to use the right NANO fractional
parts.

Cc: stable@vger.kernel.org
Fixes: 620d1e6c7a3f ("iio: light: Add support for APDS9306 Light Sensor")
Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
---
 drivers/iio/light/apds9306.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)


---
base-commit: 577a66e2e634f712384c57a98f504c44ea4b47da
change-id: 20241218-apds9306_nano_vals-d880219a82f2

Best regards,

Comments

Subhajit Ghosh Jan. 16, 2025, 11:34 a.m. UTC | #1
On 12/1/25 10:38, Javier Carrasco wrote:
> The two provided max_scale_nano values must be multiplied by 100 and 10
> respectively to achieve nano units. According to the comments:
> 
> Max scale for apds0306 is 16.326432 → the fractional part is 0.326432,
> which is 326432000 in NANO. The current value is 3264320.
> 
> Max scale for apds0306-065 is 14.09721 → the fractional part is 0.09712,
> which is 97120000 in NANO. The current value is 9712000.
> 
> Update max_scale_nano initialization to use the right NANO fractional
> parts.
> 
> Cc: stable@vger.kernel.org
> Fixes: 620d1e6c7a3f ("iio: light: Add support for APDS9306 Light Sensor")
> Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
> ---
>   drivers/iio/light/apds9306.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/iio/light/apds9306.c b/drivers/iio/light/apds9306.c
> index 69a0d609cffc91cc3daba160f309f511270be385..5ed7e17f49e76206609aba83c85e8144c536d17d 100644
> --- a/drivers/iio/light/apds9306.c
> +++ b/drivers/iio/light/apds9306.c
> @@ -108,11 +108,11 @@ static const struct part_id_gts_multiplier apds9306_gts_mul[] = {
>   	{
>   		.part_id = 0xB1,
>   		.max_scale_int = 16,
> -		.max_scale_nano = 3264320,
> +		.max_scale_nano = 326432000,
>   	}, {
>   		.part_id = 0xB3,
>   		.max_scale_int = 14,
> -		.max_scale_nano = 9712000,
> +		.max_scale_nano = 97120000,
>   	},
>   };
>   
> 
> ---
> base-commit: 577a66e2e634f712384c57a98f504c44ea4b47da
> change-id: 20241218-apds9306_nano_vals-d880219a82f2
> 
> Best regards,
Hi Javier,

You are correct.
  From iio_gts_linearize() function in industrialio-gts-helper.c
*lin_scale = (u64)scale_whole * (u64)scaler + (u64)(scale_nano / (NANO / scaler));
where "scaler" equals NANO (1000000000UL)

I tested it, no issues. The values did not deviate much as this is nano scale.

Tested-by: subhajit.ghosh@tweaklogic.com

Regards,
Subhajit Ghosh
Jonathan Cameron Jan. 18, 2025, 12:24 p.m. UTC | #2
On Sun, 12 Jan 2025 01:08:11 +0100
Javier Carrasco <javier.carrasco.cruz@gmail.com> wrote:

> The two provided max_scale_nano values must be multiplied by 100 and 10
> respectively to achieve nano units. According to the comments:
> 
> Max scale for apds0306 is 16.326432 → the fractional part is 0.326432,
> which is 326432000 in NANO. The current value is 3264320.
> 
> Max scale for apds0306-065 is 14.09721 → the fractional part is 0.09712,
> which is 97120000 in NANO. The current value is 9712000.
> 
> Update max_scale_nano initialization to use the right NANO fractional
> parts.
> 
> Cc: stable@vger.kernel.org
> Fixes: 620d1e6c7a3f ("iio: light: Add support for APDS9306 Light Sensor")
> Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>

This just missed last pull request for this cycle.
I've locally advanced my fixes branch to include all the material that will
merge in next couple of weeks, but for now can't push it out without making
a mess of linux-next (it will be in wrong place in the sequence)

So applied, but you can't see it yet!

Jonathan

> ---
>  drivers/iio/light/apds9306.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/iio/light/apds9306.c b/drivers/iio/light/apds9306.c
> index 69a0d609cffc91cc3daba160f309f511270be385..5ed7e17f49e76206609aba83c85e8144c536d17d 100644
> --- a/drivers/iio/light/apds9306.c
> +++ b/drivers/iio/light/apds9306.c
> @@ -108,11 +108,11 @@ static const struct part_id_gts_multiplier apds9306_gts_mul[] = {
>  	{
>  		.part_id = 0xB1,
>  		.max_scale_int = 16,
> -		.max_scale_nano = 3264320,
> +		.max_scale_nano = 326432000,
>  	}, {
>  		.part_id = 0xB3,
>  		.max_scale_int = 14,
> -		.max_scale_nano = 9712000,
> +		.max_scale_nano = 97120000,
>  	},
>  };
>  
> 
> ---
> base-commit: 577a66e2e634f712384c57a98f504c44ea4b47da
> change-id: 20241218-apds9306_nano_vals-d880219a82f2
> 
> Best regards,
diff mbox series

Patch

diff --git a/drivers/iio/light/apds9306.c b/drivers/iio/light/apds9306.c
index 69a0d609cffc91cc3daba160f309f511270be385..5ed7e17f49e76206609aba83c85e8144c536d17d 100644
--- a/drivers/iio/light/apds9306.c
+++ b/drivers/iio/light/apds9306.c
@@ -108,11 +108,11 @@  static const struct part_id_gts_multiplier apds9306_gts_mul[] = {
 	{
 		.part_id = 0xB1,
 		.max_scale_int = 16,
-		.max_scale_nano = 3264320,
+		.max_scale_nano = 326432000,
 	}, {
 		.part_id = 0xB3,
 		.max_scale_int = 14,
-		.max_scale_nano = 9712000,
+		.max_scale_nano = 97120000,
 	},
 };