From 672f93b6047cc724f002cf50a84f4e8155b86f12 Mon Sep 17 00:00:00 2001 From: Linus Walleij Date: Tue, 11 Aug 2015 14:34:38 +0200 Subject: iio: event_monitor: report unsupported events This makes the event monitor bail out with a helpful error message if a device does not support events, as a related fix to iio core now makes it return -ENODEV properly. Signed-off-by: Linus Walleij Acked-by: Hartmut Knaack Signed-off-by: Jonathan Cameron --- tools/iio/iio_event_monitor.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'tools') diff --git a/tools/iio/iio_event_monitor.c b/tools/iio/iio_event_monitor.c index cd3fd41b481d..d51eb04202e9 100644 --- a/tools/iio/iio_event_monitor.c +++ b/tools/iio/iio_event_monitor.c @@ -284,7 +284,11 @@ int main(int argc, char **argv) ret = ioctl(fd, IIO_GET_EVENT_FD_IOCTL, &event_fd); if (ret == -1 || event_fd == -1) { ret = -errno; - fprintf(stderr, "Failed to retrieve event fd\n"); + if (ret == -ENODEV) + fprintf(stderr, + "This device does not support events\n"); + else + fprintf(stderr, "Failed to retrieve event fd\n"); if (close(fd) == -1) perror("Failed to close character device file"); -- cgit v1.2.3-70-g09d2 From 53dabafe1b17411de82b6c4560145cf396cbb564 Mon Sep 17 00:00:00 2001 From: Linus Walleij Date: Mon, 10 Aug 2015 10:55:08 +0200 Subject: 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 Acked-by: Hartmut Knaack Signed-off-by: Jonathan Cameron --- tools/iio/generic_buffer.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'tools') diff --git a/tools/iio/generic_buffer.c b/tools/iio/generic_buffer.c index 9f7b85bf6ada..01c4f67801e0 100644 --- a/tools/iio/generic_buffer.c +++ b/tools/iio/generic_buffer.c @@ -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. -- cgit v1.2.3-70-g09d2