]> git.baikalelectronics.ru Git - kernel.git/commit
staging: comedi: dt2814: Clear stale AI data on detach
authorIan Abbott <abbotti@mev.co.uk>
Mon, 1 Mar 2021 16:57:57 +0000 (16:57 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 10 Mar 2021 08:25:31 +0000 (09:25 +0100)
commitce5d9fc5af40c4c9e5fb3f3c569984680e6c979f
tree96f14c1fbe6e6b28113a6339c3607e3b30ba87a5
parent45fd2bfa9079570ff52ff279d4f9f9fcfcc6d4e6
staging: comedi: dt2814: Clear stale AI data on detach

When the Comedi "detach" handler is called, it is possible that an extra
A/D conversion (triggered during termination of a Comedi asynchronous
command) is still in progress.  In that case, the FINISH bit in the
Status register will eventually get set and there will be stale data
waiting to be read from the A/D Data register.  The interrupt handler
will also be called if still connected at the time.  That should all be
mostly harmless, but it would be better to wait for any such conversion
to complete and clear any stale data during the "detach".  Add a custom
"detach" handler `dt2814_detach()` to do that if an interrupt handler
has been set up.  (There is no need to do it if no interrupt handler was
set up because Comedi asynchronous command support is disabled in that
case.)

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Link: https://lore.kernel.org/r/20210301165757.243065-7-abbotti@mev.co.uk
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/drivers/dt2814.c