Re: [PATCH v5 2/2] iio: light: as73211: New driver

From: Lars-Peter Clausen
Date: Tue Aug 04 2020 - 04:35:05 EST


On 8/4/20 9:40 AM, Christian Eggers wrote:
On Sunday, 2 August 2020, 20:02:35 CEST, Andy Shevchenko wrote:
Thanks for an update, my comments below.
Thanks for the review. Please see below for my questions.

Best regards
Christian

On Sun, Aug 2, 2020 at 7:40 PM Christian Eggers <ceggers@xxxxxxx> wrote:
Datasheet:
https://ams.com/documents/20143/36005/AS73211_DS000556_3-01.pdf/a65474c0-
b302-c2fd-e30a-c98df87616df
Do we need the UUID after the document file name?
I have send AMS an inquiry. Not sure whether I will get an answer. I will wait
a few days until sending v6.

+#define AS73211_OFFSET_TEMP (-66.9)
+#define AS73211_SCALE_TEMP 0.05
In the kernel we don't do float arithmetic. How these are being used?
Does this restriction also apply for compile time constants? I am quite
sure that all calculations using these defines will be evaluated at compile
time. If found a number of other places where probably the same is done:

find . -name '*.c' | xargs grep "#define.*[0-9]\.[0-9]" | grep -v '"' | grep -v "\/\*.*[0-9]\.[0-9]"

I believe it is implementation defined. The compiler is free to generate floating math and do the conversion at runtime. Although it is probably safe to assume that no reasonable compiler will do this for your code. If only we had constexpr in C, then there was a way to make it guaranteed that the conversion happens during compile time.

But I agree with you, it would be nice to have a cleaner way of declaring fixed point numbers without having to pay attention to how many 0s you have to put after the least significant digit.