From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752562AbcDZPTR (ORCPT ); Tue, 26 Apr 2016 11:19:17 -0400 Received: from mga01.intel.com ([192.55.52.88]:28640 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751840AbcDZPTQ (ORCPT ); Tue, 26 Apr 2016 11:19:16 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.24,537,1455004800"; d="scan'208";a="692553776" From: Doru Gucea To: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Doru Gucea Subject: [PATCH] iio: generic_buffer: add watermark logic Date: Tue, 26 Apr 2016 18:15:45 +0300 Message-Id: <1461683745-1006-1-git-send-email-doru.gucea@intel.com> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- tools/iio/generic_buffer.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/tools/iio/generic_buffer.c b/tools/iio/generic_buffer.c index 01c4f67..f806b52 100644 --- a/tools/iio/generic_buffer.c +++ b/tools/iio/generic_buffer.c @@ -199,6 +199,7 @@ void print_usage(void) " -e Disable wait for event (new data)\n" " -g Use trigger-less mode\n" " -l Set buffer length to n samples\n" + " -m Set watermark to n samples\n" " -n Set device name (mandatory)\n" " -t Set trigger name\n" " -w 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) { -- 1.9.1