iio: generic_buffer: add watermark logic
PATCH 1/1 iio: generic_buffer: add watermark logic
Some IIO devices with FIFO buffers accept setting the watermark value from /sys/bus/iio/devices/iio:deviceX/buffer/watermark.
This patch adds the '-m' command line parameter for easily setting the watermark.
Signed-off-by Doru Gucea <[email protected]>
--- tools/iio/generic_buffer.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-)
tools/iio/generic_buffer.c +18 -1
@@ -199,6 +199,7 @@ void print_usage(void)" -e Disable wait for event (new data)\n" " -g Use trigger-less mode\n" " -l <n> Set buffer length to n samples\n" +" -m <n> Set watermark to n samples\n" " -n <name> Set device name (mandatory)\n" " -t <name> Set trigger name\n" " -w <n> Set delay between reads in us (event-less mode)\n");
@@ -225,11 +226,12 @@ int main(int argc, char **argv)int scan_size;int noevents =0 ;int notrigger =0 ; +int watermark =0 ;char *dummy;struct iio_channel_info *channels; -while ((c =getopt (argc, argv,"c:egl:n:t:w:" )) !=-1 ) { +while ((c =getopt (argc, argv,"c:egl:n:t:w:m:" )) !=-1 ) {switch (c) {case 'c' : errno =0 ;
@@ -251,6 +253,12 @@ int main(int argc, char **argv)return -errno;break ; +case 'm' : + errno =0 ; + watermark =strtoul (optarg, &dummy,10 ); +if (errno) +return -errno; +break ;case 'n' : device_name = optarg;break ;
@@ -371,6 +379,15 @@ int main(int argc, char **argv)if (ret <0 ) goto error_free_buf_dir_name; +if (watermark) { + ret =write_sysfs_int ("watermark" , buf_dir_name, + watermark); +if (ret <0 ) { +fprintf (stderr,"Failed to write watermark\n" ); + goto error_free_buf_dir_name; + } + } +/* Enable the buffer */ ret =write_sysfs_int ("enable" , buf_dir_name,1 );if (ret <0 ) {
Signature · 1 line
1.9.1