On Wednesday, November 05, 2014 4:25 AM, Ian Abbott wrote:
> On 04/11/14 16:50, H Hartley Sweeten wrote:
>> Introduce a new member to comedi_async to count the number of scans 
>> completed.
>> This member is cleared by comedi_buf_reset() along with the other 
>> comedi_async
>> members. It is incremented in comedi_inc_scan_progress() when the end of scan
>> is detected.
>>
>> This member will be used to clean up the scan counting in the comedi drivers.
>>
>> Signed-off-by: H Hartley Sweeten <hswee...@visionengravers.com>
>> Cc: Ian Abbott <abbo...@mev.co.uk>
>> Cc: Greg Kroah-Hartman <gre...@linuxfoundation.org>
>> ---
>>   drivers/staging/comedi/comedi_buf.c | 1 +
>>   drivers/staging/comedi/comedidev.h  | 2 ++
>>   drivers/staging/comedi/drivers.c    | 1 +
>>   3 files changed, 4 insertions(+)

[snip]

>> diff --git a/drivers/staging/comedi/drivers.c 
>> b/drivers/staging/comedi/drivers.c
>> index 9a8c5fc..4fc992b 100644
>> --- a/drivers/staging/comedi/drivers.c
>> +++ b/drivers/staging/comedi/drivers.c
>> @@ -352,6 +352,7 @@ void comedi_inc_scan_progress(struct comedi_subdevice *s,
>>
>>      async->scan_progress += num_bytes;
>>      if (async->scan_progress >= scan_length) {
>> +            async->scans_done += async->scan_progress / scan_length;
>>              async->scan_progress %= scan_length;
>>              async->events |= COMEDI_CB_EOS;
>>      }
>>
>
> The patch is fine, but as a follow-up patch, async->scans_done could be 
> clamped to UINT_MAX (or possibly async->cmd.stop_arg, but UINT_MAX is 
> easier), e.g.:
>
>               unsigned int scans = async->scan_progress / scan_length;
>
>               if (async->scans_done < UINT_MAX - scans)
>                       async->scans_done += scans;
>               else
>                       async->scans_done = UINT_MAX;
>               async->scan_progress -= scans * scan_length;
>               async->events |= COMEDI_CB_EOS;

Ian,

As you pointed out, I need to fix patch 12 so I will also update this one for
the v2 series.

Thanks,
Hartley

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to