Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

iio: generic_buffer: be helpful about enabling channels

Currently if generic_buffer is invoked without first enabling any
channels in scan_elements/*_en, it will fail unable to enable the
buffer because bytes_per_datum inside the kernel will be zero if
no channels are available.

It is implied that the user of the program should enable channels
manually or with a script before executing generic_buffer.

Be more helpful by stopping execution if no enabled channels can
be found, and print a helptext that will tell you what is wrong
and what needs to be done.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>

authored by

Linus Walleij and committed by
Jonathan Cameron
53dabafe 672f93b6

+9
+9
tools/iio/generic_buffer.c
··· 328 328 "diag %s\n", dev_dir_name); 329 329 goto error_free_triggername; 330 330 } 331 + if (!num_channels) { 332 + fprintf(stderr, 333 + "No channels are enabled, we have nothing to scan.\n"); 334 + fprintf(stderr, "Enable channels manually in " 335 + FORMAT_SCAN_ELEMENTS_DIR 336 + "/*_en and try again.\n", dev_dir_name); 337 + ret = -ENOENT; 338 + goto error_free_triggername; 339 + } 331 340 332 341 /* 333 342 * Construct the directory name for the associated buffer.