This patch changes a handful of while loops to timeouts to prevent
infinite looping on hardware failure. A couple such loops are in a
function (s626_debi_transfer()) which is called from critical sections,
so comedi_timeout() is unusable for them, and an iterative timeout is
used instead. For the while loops in a context where comedi_timeout() is
allowed, a new callback function, s626_send_dac_eoc(), has been defined
to evaluate the conditions that the while loops are testing. The new
callback employs a switch statement based on a simple new enum so that
it is usable for all of the different conditions tested in while loops
in s626_send_dac(). The proper comedi_timeout() calls are then used.
Signed-off-by: Chase Southwood <chase.southwood@xxxxxxxxx>
---
Ian, here is a version of this patchset employing the enum you recommended.
The second patch has been rebased on top of this one.
2: Used comedi_timeout() where appropriate, introduce callback function
3: Updated callback to switch on new enum.