[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAGngYiVDOTaqD3p4ZskdM0RjUZUqubXR6KsDOcVMEO5mBi2rBQ@mail.gmail.com>
Date: Tue, 12 Feb 2019 23:56:19 -0500
From: Sven Van Asbroeck <thesven73@...il.com>
To: Jonathan Cameron <jic23@...nel.org>
Cc: Robert Eshleman <bobbyeshleman@...il.com>,
Hartmut Knaack <knaack.h@....de>,
Lars-Peter Clausen <lars@...afoo.de>,
Peter Meerwald-Stadler <pmeerw@...erw.net>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
linux-iio@...r.kernel.org
Subject: Re: [PATCH 1/3] iio: light: Add driver for ap3216c
On Tue, Feb 12, 2019 at 11:40 PM Sven Van Asbroeck <thesven73@...il.com> wrote:
>
> Next, read ALS and PS _exclusively_ in the irq handler, guard it with
> a mutex:
>
Wait a second, that wouldn't work, because we don't get an interrupt
on every ALS/PS
conversion, correct ?
In that case, don't cache the als/ps value in the irq handler, but
read it from the hardware in
ap3216c_read_raw, while holding the mutex.
That would still guard against:
- _LO and _HI getting interleaved
- userspace reading the value in between sending the event, and
clearing the int bit
- the int handler not immediately seeing _thresh_en
Apologies for the confusion :)
Powered by blists - more mailing lists