Re: [PATCH v2] iio: ti-ads7138: Disable STATS_EN bit while reading conversion results

From: Andy Shevchenko

Date: Sat Jun 20 2026 - 02:36:41 EST


On Fri, Jun 19, 2026 at 09:42:08AM -0500, David Lechner wrote:
> On 6/19/26 4:00 AM, Paul Geurts wrote:
> > The device might update channel data while it's read by the host,
> > providing a data race. Disable the update of the channel stats before
> > reading the values.
>
> This description seems a bit short on details. It looks like this
> driver doesn't support buffered reads. So if we disable statistics
> during a direct read, why would we want to enable statistics in
> the first place?

I believe this patch is initiated by
"Until a new conversion result is available, previous values can be read from
the statistics registers. Before reading the statistics registers, set STATS_EN
to 0 to prevent any updates to this register block."
from the datasheet.

I would rather like to know if this is IRL problem, or just a datasheet reading
based code.

> (This driver suffers from the comments say "what" rather than "why"
> /* Enable statistics and digital window comparator */ so it is hard
> to say what the original intention was.)
>
> Can you explain more what this race condition is about and what
> happens before the fix vs. after the fix? People generally do this
> with two columns showing concurrent function calls.

--
With Best Regards,
Andy Shevchenko