On 3/11/22 18:03, Andy Shevchenko wrote:
On Fri, Mar 11, 2022 at 12:33:49PM +0100, Marek Vasut wrote:
On 3/11/22 12:29, Andy Shevchenko wrote:
On Fri, Mar 11, 2022 at 1:55 AM Marek Vasut <marex@xxxxxxx> wrote:
On 3/10/22 15:25, Andy Shevchenko wrote:
On Thu, Mar 10, 2022 at 01:34:00AM +0100, Marek Vasut wrote:
...
- .realbits = 12, \
+ .realbits = (_realbits), \
.storagebits = 16, \
This seems inconsistent a bit. What if the next chip wants to have more than
16 bits in realbits?
When such a chip exists, this can be parametrized as well.
Yes, My point is that it's error prone.
Won't IIO core warn if realbits > storagebits ?
If it's the case, then it's very good!
No, apparently it won't .
...
I see two options:
1) add static assert to make sure realbits <= storagebits;
Does static_assert work in array of structures (I don't think it does) ?
You can check, but IIRC some of the macros have it. Don't remember the
details, though.
I already checked before replying, hence my question, as I didn't find a way
to make it work.
It seems that current use cases have it either in functions or in
the expressions as ({...}). I dunno if the result of ({...}) can be
a data structure or compound literal.
I added a patch to v2, but ugh, it isn't nice:
[PATCH v2 7/7] iio: adc: ti-ads1015: Add static assert to test if
shifted realbits fit into storagebits