Hi Guenter,
Thank you for the quick feedback!
On Wed, Oct 19, 2022 at 11:51 PM Guenter Roeck <linux@xxxxxxxxxxxx> wrote:
[...]
My understanding is that that:+ if (data->valid || data->temp[t_min])
This contradicts "with applying the previous values by only configuring
them if they are known valid". It explicitly applies the values if they
are marked as not valid, and it also applies the values if they are 0
(I don't really see the value of doing that).
Sorry, I don't understand the logic. Did you mean to use "&&" instead
of "||" ?
1) data->valid = true is only set in jc42_update_device() (which is
only called when reading back the values from the registers)
2) jc42_write() can write values without setting data->value = true
In other words: if jc42_read() is never called but jc42_write() is
then we still have some setting to apply while data->valid is false.
Whether that's possible in reality is something that I'm not sure
about.
If your suggestion is to simplify this to use data->valid only then I
can do that.
It would be great if you could also comment on whether
jc42_update_device() should be called from jc42_suspend() to give the
driver the chance to at least read the data once (and set data->valid)
if this has not happened before.
Best regards,
Martin