tools: iio: generic_buffer fixes
v2 cover tools: iio: generic_buffer fixes
Fixes for a couple of small issues found while testing the bmc150_magn driver.
Changes in v2:
- use ret instead of errno to print error message
- add Hartmut's Ack for the first patch
Irina Tirdea (2):
tools: iio: fix mask for 32 bit sensor data
tools: iio: print error message when buffer enable fails
tools/iio/generic_buffer.c | 5 ++++- tools/iio/iio_utils.c | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-)
Signature · 1 line
1.9.1
PATCH v2 1/2 tools: iio: fix mask for 32 bit sensor data
When the the sensor data uses 32 bits out of 32, generic_buffer prints the value 0 for all data read.
In this case, the mask is shifted 32 bits, which is beyond the size of an integer. This will lead to the mask always being 0. Before printing, the mask is applied to the raw value, thus generating a final value of 0.
Fix the mask by shifting a 64 bit value instead of an integer.
--- tools/iio/iio_utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
tools/iio/iio_utils.c +1 -1
@@ -168,7 +168,7 @@ int iioutils_get_type(unsigned *is_signed, unsigned *bytes, unsigned *bits_used,if (*bits_used ==64 ) *mask = ~0 ;else - *mask = (1 << *bits_used) -1 ; + *mask = (1ULL << *bits_used) -1 ; *is_signed = (signchar =='s' );if (fclose (sysfsfp)) {
Signature · 1 line
1.9.1
Re: [PATCH v2 1/2] tools: iio: fix mask for 32 bit sensor data
Quoted 11 lines · Irina Tirdea
When the the sensor data uses 32 bits out of 32,
generic_bufferprints the value 0 for all data read.In this case, the mask is shifted 32 bits, which is beyond the size of an integer. This will lead to the mask always being 0. Before printing, the mask is applied to the raw value, thus generating a final value of 0.
Fix the mask by shifting a 64 bit value instead of an integer.
Signed-off-by Irina Tirdea <[email protected]>Acked-by Hartmut Knaack <[email protected]>
Applied to the togreg branch of iio.git
Pushed out as testing for the autobuilders to completely ignore this patch :)
Jonathan
Quoted 18 lines
--- tools/iio/iio_utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)tools/iio/iio_utils.c +1
-1@@ -168,7 +168,7 @@ int iioutils_get_type(unsigned *is_signed, unsigned *bytes, unsigned *bits_used,if (*bits_used ==64 ) *mask = ~0 ;else - *mask = (1 << *bits_used) -1 ; + *mask = (1ULL << *bits_used) -1 ; *is_signed = (signchar =='s' );if (fclose (sysfsfp)) {
PATCH v2 2/2 tools: iio: print error message when buffer enable fails
In reply to Irina TirdeaRunning generic_buffer without enabling any channel of the sensor will fail without printing any error message.
Add an error message that indicates buffer enable failed.
--- tools/iio/generic_buffer.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
tools/iio/generic_buffer.c +4 -1
@@ -364,8 +364,11 @@ int main(int argc, char **argv)/* Enable the buffer */ ret =write_sysfs_int ("enable" , buf_dir_name,1 ); -if (ret <0 ) +if (ret <0 ) { +fprintf (stderr, +"Failed to enable buffer: %s\n" ,strerror (-ret)); goto error_free_buf_dir_name; + } scan_size =size_from_channelarray (channels, num_channels); data =malloc (scan_size * buf_len);
Signature · 1 line
1.9.1
Re: [PATCH v2 2/2] tools: iio: print error message when buffer enable fails
Irina Tirdea schrieb am 24.07.2015 um 15:28:
Quoted 6 lines
Running
generic_bufferwithout enabling any channel of the sensor will fail without printing any error message.Add an error message that indicates buffer enable failed.
Signed-off-by Irina Tirdea <[email protected]>
Quoted 22 lines
--- tools/iio/generic_buffer.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)tools/iio/generic_buffer.c +4
-1@@ -364,8 +364,11 @@ int main(int argc, char **argv)/* Enable the buffer */ ret =write_sysfs_int ("enable" , buf_dir_name,1 ); -if (ret <0 ) +if (ret <0 ) { +fprintf (stderr, +"Failed to enable buffer: %s\n" ,strerror (-ret)); goto error_free_buf_dir_name; + } scan_size =size_from_channelarray (channels, num_channels); data =malloc (scan_size * buf_len);
Re: [PATCH v2 2/2] tools: iio: print error message when buffer enable fails
Quoted 8 lines · Hartmut Knaack
Irina Tirdea schrieb am 24.07.2015 um 15:28:
Quoted 6 lines
Running
generic_bufferwithout enabling any channel of the sensor will fail without printing any error message.Add an error message that indicates buffer enable failed.
Signed-off-by Irina Tirdea <[email protected]>Acked-by Hartmut Knaack <[email protected]>
Applied.
Thanks
Jonathan
Quoted 28 lines
Quoted 12 lines
--- tools/iio/generic_buffer.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)tools/iio/generic_buffer.c +0
-0@@ -364,8 +364,11 @@ int main(int argc, char **argv)/* Enable the buffer */ tools/iio/generic_buffer.c int main(int argc, char **argv) · line 374
Quoted 10 lines
tools/iio/generic_buffer.c +4
-1ret =write_sysfs_int ("enable" , buf_dir_name,1 ); -if (ret <0 ) +if (ret <0 ) { +fprintf (stderr, +"Failed to enable buffer: %s\n" ,strerror (-ret)); goto error_free_buf_dir_name; + } scan_size =size_from_channelarray (channels, num_channels); data =malloc (scan_size * buf_len);--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html