iio: generic_buffer: be helpful about enabling channels
authorLinus Walleij <linus.walleij@linaro.org>
Mon, 10 Aug 2015 08:55:08 +0000 (10:55 +0200)
committerJonathan Cameron <jic23@kernel.org>
Sun, 16 Aug 2015 09:51:26 +0000 (10:51 +0100)
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>
tools/iio/generic_buffer.c

index 9f7b85bf6ada3e3cdf43508ab9b3589daf14325a..01c4f67801e0e0d6ce865f7a4f241e7425645860 100644 (file)
@@ -328,6 +328,15 @@ int main(int argc, char **argv)
                        "diag %s\n", dev_dir_name);
                goto error_free_triggername;
        }
+       if (!num_channels) {
+               fprintf(stderr,
+                       "No channels are enabled, we have nothing to scan.\n");
+               fprintf(stderr, "Enable channels manually in "
+                       FORMAT_SCAN_ELEMENTS_DIR
+                       "/*_en and try again.\n", dev_dir_name);
+               ret = -ENOENT;
+               goto error_free_triggername;
+       }
 
        /*
         * Construct the directory name for the associated buffer.