Re: [PATCH] Staging: comedi: add timeouts to while loops in s626.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2014-03-02 04:13, Chase Southwood wrote:
On Friday, February 28, 2014 11:49 PM, Chase Southwood <chase.southwood@xxxxxxxxx> wrote:

On Friday, February 28, 2014 11:26 AM, Ian Abbott <abbotti@xxxxxxxxx> wrote:
On 2014-02-28 07:35, Chase Southwood wrote:

[snip]

In the case of s626_send_dac(), it doesn't seem to be used in any
critical sections, so it could make use of Hartley's comedi_timeout().

Some of the timeout errors could be propagated, especially for
s626_send_dac() which is only reachable from very few paths.


Awesome, I'll swap all of my timeouts out for comedi_timeout() in s626_send_dac().

Actually, after taking another look at this, I don't think that using comedi_timeout()
here is going to work, actually.
The context from which s626_send_dac() is called allows sleep all right, but readl() isn't
a comedi function and therefore it doesn't behave (in parameters or return values) as
the callback function parameter to comedi_timeout() requires.  So unless I'm missing
something particularly large here, I believe we'll have to do the timeouts here manually
as well.  Am I correct here, and if so, would you like the iteration based timeouts here
as well, or a sleep-based timeout similar to that employed by comedi_timeout()?

The readl() could be done in a small callback function. As the different while loops are checking for different results from readl(), It would need a different callback functions for each case, or some creative use of the callback function's 'context' parameter.

--
-=( Ian Abbott @ MEV Ltd.    E-mail: <abbotti@xxxxxxxxx>        )=-
-=( Tel: +44 (0)161 477 1898   FAX: +44 (0)161 718 3587         )=-
_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel




[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux