Re: [PATCH v4 3/7] iio: light: vcnl4000: Add als_it for vcnl4040/4200

From: Astrid Rost
Date: Mon May 29 2023 - 05:26:01 EST


Hello Andy,

Thanks for your comment.


On 5/29/23 00:42, andy.shevchenko@xxxxxxxxx wrote:
Mon, May 22, 2023 at 04:26:17PM +0200, Astrid Rost kirjoitti:
Add illuminance integration time for vcnl4040 and vcnl4200.
Add read/write attribute for illuminance integration time and read
attribute for available integration times.
Set scale and sampling rate according to the integration time.

...

+ data->vcnl4200_al.sampling_rate = ktime_set(0, val * 1200000);
+ if (data->id == VCNL4200)
+ /* 24000 µlux/step * 50000 µs / val */
+ data->al_scale = div_u64(1200000000, val);

Without type these constant are integers. Is this okay with 32-bit builds?

No, I got an error on x86 on my first patch. But i did not really understand. All variables are within int and not defined as something bigger.


+ else
+ /* 100000 µlux/step * 80000 µs / val */
+ data->al_scale = div_u64(8000000000, val);

Ditto.

8000000000 exceeds at least 32 bit.

Also, can you use constants from units.h (KILO) and time.h (USEC_PER_MSEC)?

...

+out:

out_unlock:

+ mutex_unlock(&data->vcnl4000_lock);
+ return ret;