Re: [PATCH] IIO: Documentation: generic_buffer example: scan_size must be bytes_per_datum

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

 



On 02/22/11 20:21, Michael Hennerich wrote:
> On 02/22/2011 07:48 PM, Jonathan Cameron wrote:
>> On 02/15/11 14:46, michael.hennerich@xxxxxxxxxx wrote:
>>   
>>> From: Michael Hennerich <michael.hennerich@xxxxxxxxxx>
>>>
>>> In case a timestamp is present, scan size returned by size_from_channelarray()
>>> is not longer valid.
>>>     
>> Really?  Shouldn't the timestamp just be picked up as another channel assuming
>> all the relevant attributes are present (which they should be...)
>>   
> I think the pronunciation is on 'should be'.
> Looks like all my drivers don't do it, as well as some of yours.
> 
> My assumption was that bytes_per_datum must be properly set.
That should certainly be the case.  We could put a sanity check in to
test both numbers are the same as clearly we've gotten it wrong in some
drivers.
> And that the timestamp is always assumed to be the last 8bytes aligned
> on a 64-bit boundary.
It is at the moment but that might change so lets do it right now..
> I guess some drivers need fixing.
Yes. It looks that way. Good thing you picked up on this problem.
>  
>>   
>>> However size_from_channelarray() must be still called
>>> in order to setup locations within the buffer.
>>>
>>> Signed-off-by: Michael Hennerich <michael.hennerich@xxxxxxxxxx>
>>> ---
>>>  drivers/staging/iio/Documentation/generic_buffer.c |    8 +++++++-
>>>  1 files changed, 7 insertions(+), 1 deletions(-)
>>>
>>> diff --git a/drivers/staging/iio/Documentation/generic_buffer.c b/drivers/staging/iio/Documentation/generic_buffer.c
>>> index 131d9d0..c382452 100644
>>> --- a/drivers/staging/iio/Documentation/generic_buffer.c
>>> +++ b/drivers/staging/iio/Documentation/generic_buffer.c
>>> @@ -226,7 +226,13 @@ int main(int argc, char **argv)
>>>       ret = write_sysfs_int("enable", buf_dir_name, 1);
>>>       if (ret < 0)
>>>               goto error_free_buf_dir_name;
>>> -     scan_size = size_from_channelarray(infoarray, num_channels);
>>> +
>>> +     scan_size = read_sysfs_posint("bytes_per_datum", buf_dir_name);
>>> +     if (ret < 0)
>>> +             goto error_free_buf_dir_name;
>>> +
>>> +     size_from_channelarray(infoarray, num_channels);
>>> +
>>>       data = malloc(scan_size*buf_len);
>>>       if (!data) {
>>>               ret = -ENOMEM;
>>>     
>>   
> 
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux