* [PATCH 0/1] staging: iio: Add notrigger mode for generic_buffer @ 2014-11-04 14:29 Karol Wrona 2014-11-04 14:29 ` [PATCH 1/1] " Karol Wrona 0 siblings, 1 reply; 3+ messages in thread From: Karol Wrona @ 2014-11-04 14:29 UTC (permalink / raw) To: Jonathan Cameron, Hartmut Knaack, linux-iio Cc: Kyungmin Park, Bartlomiej Zolnierkiewicz, Karol Wrona Hello, Sometimes it is hard to test IIO device with no triggers at all. This patch adds "-g" option which allows to use generic_buffer app without bothering about triggers. Thanks, Karol Karol Wrona (1): staging: iio: Add notrigger mode for generic_buffer drivers/staging/iio/Documentation/generic_buffer.c | 77 ++++++++++++-------- 1 file changed, 45 insertions(+), 32 deletions(-) -- 1.7.9.5 ^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 1/1] staging: iio: Add notrigger mode for generic_buffer 2014-11-04 14:29 [PATCH 0/1] staging: iio: Add notrigger mode for generic_buffer Karol Wrona @ 2014-11-04 14:29 ` Karol Wrona 2014-11-05 14:44 ` Jonathan Cameron 0 siblings, 1 reply; 3+ messages in thread From: Karol Wrona @ 2014-11-04 14:29 UTC (permalink / raw) To: Jonathan Cameron, Hartmut Knaack, linux-iio Cc: Kyungmin Park, Bartlomiej Zolnierkiewicz, Karol Wrona Some IIO devices do not use the triggers. This patch makes trigger setting conditional so generic_buffer can be used when triggers are disabled. Signed-off-by: Karol Wrona <k.wrona@samsung.com> --- drivers/staging/iio/Documentation/generic_buffer.c | 77 ++++++++++++-------- 1 file changed, 45 insertions(+), 32 deletions(-) diff --git a/drivers/staging/iio/Documentation/generic_buffer.c b/drivers/staging/iio/Documentation/generic_buffer.c index 31dfb21..de4647e 100644 --- a/drivers/staging/iio/Documentation/generic_buffer.c +++ b/drivers/staging/iio/Documentation/generic_buffer.c @@ -162,11 +162,12 @@ int main(int argc, char **argv) char *buffer_access; int scan_size; int noevents = 0; + int notrigger = 0; char *dummy; struct iio_channel_info *channels; - while ((c = getopt(argc, argv, "l:w:c:et:n:")) != -1) { + while ((c = getopt(argc, argv, "l:w:c:et:n:g")) != -1) { switch (c) { case 'n': device_name = optarg; @@ -187,6 +188,9 @@ int main(int argc, char **argv) case 'l': buf_len = strtoul(optarg, &dummy, 10); break; + case 'g': + notrigger = 1; + break; case '?': return -1; } @@ -205,28 +209,32 @@ int main(int argc, char **argv) printf("iio device number being used is %d\n", dev_num); asprintf(&dev_dir_name, "%siio:device%d", iio_dir, dev_num); - if (trigger_name == NULL) { - /* - * Build the trigger name. If it is device associated its - * name is <device_name>_dev[n] where n matches the device - * number found above - */ - ret = asprintf(&trigger_name, - "%s-dev%d", device_name, dev_num); - if (ret < 0) { - ret = -ENOMEM; - goto error_ret; + + if (!notrigger) { + if (trigger_name == NULL) { + /* + * Build the trigger name. If it is device associated + * its name is <device_name>_dev[n] where n matches + * the device number found above. + */ + ret = asprintf(&trigger_name, + "%s-dev%d", device_name, dev_num); + if (ret < 0) { + ret = -ENOMEM; + goto error_ret; + } } - } - /* Verify the trigger exists */ - trig_num = find_type_by_name(trigger_name, "trigger"); - if (trig_num < 0) { - printf("Failed to find the trigger %s\n", trigger_name); - ret = -ENODEV; - goto error_free_triggername; - } - printf("iio trigger number being used is %d\n", trig_num); + /* Verify the trigger exists */ + trig_num = find_type_by_name(trigger_name, "trigger"); + if (trig_num < 0) { + printf("Failed to find the trigger %s\n", trigger_name); + ret = -ENODEV; + goto error_free_triggername; + } + printf("iio trigger number being used is %d\n", trig_num); + } else + printf("trigger-less mode selected\n"); /* * Parse the files in scan_elements to identify what channels are @@ -250,14 +258,18 @@ int main(int argc, char **argv) ret = -ENOMEM; goto error_free_triggername; } - printf("%s %s\n", dev_dir_name, trigger_name); - /* Set the device trigger to be the data ready trigger found above */ - ret = write_sysfs_string_and_verify("trigger/current_trigger", - dev_dir_name, - trigger_name); - if (ret < 0) { - printf("Failed to write current_trigger file\n"); - goto error_free_buf_dir_name; + + if (!notrigger) { + printf("%s %s\n", dev_dir_name, trigger_name); + /* Set the device trigger to be the data ready trigger found + * above */ + ret = write_sysfs_string_and_verify("trigger/current_trigger", + dev_dir_name, + trigger_name); + if (ret < 0) { + printf("Failed to write current_trigger file\n"); + goto error_free_buf_dir_name; + } } /* Setup ring buffer parameters */ @@ -327,9 +339,10 @@ int main(int argc, char **argv) if (ret < 0) goto error_close_buffer_access; - /* Disconnect the trigger - just write a dummy name. */ - write_sysfs_string("trigger/current_trigger", - dev_dir_name, "NULL"); + if (!notrigger) + /* Disconnect the trigger - just write a dummy name. */ + write_sysfs_string("trigger/current_trigger", + dev_dir_name, "NULL"); error_close_buffer_access: close(fp); -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 1/1] staging: iio: Add notrigger mode for generic_buffer 2014-11-04 14:29 ` [PATCH 1/1] " Karol Wrona @ 2014-11-05 14:44 ` Jonathan Cameron 0 siblings, 0 replies; 3+ messages in thread From: Jonathan Cameron @ 2014-11-05 14:44 UTC (permalink / raw) To: Karol Wrona, Hartmut Knaack, linux-iio Cc: Kyungmin Park, Bartlomiej Zolnierkiewicz On 04/11/14 14:29, Karol Wrona wrote: > Some IIO devices do not use the triggers. This patch makes trigger setting > conditional so generic_buffer can be used when triggers are disabled. > > Signed-off-by: Karol Wrona <k.wrona@samsung.com> Been meaning to add this for a while! Thanks for doing it. Applied to the togreg branch of iio.git - initially pushed out as testing. Thanks Jonathan > --- > drivers/staging/iio/Documentation/generic_buffer.c | 77 ++++++++++++-------- > 1 file changed, 45 insertions(+), 32 deletions(-) > > diff --git a/drivers/staging/iio/Documentation/generic_buffer.c b/drivers/staging/iio/Documentation/generic_buffer.c > index 31dfb21..de4647e 100644 > --- a/drivers/staging/iio/Documentation/generic_buffer.c > +++ b/drivers/staging/iio/Documentation/generic_buffer.c > @@ -162,11 +162,12 @@ int main(int argc, char **argv) > char *buffer_access; > int scan_size; > int noevents = 0; > + int notrigger = 0; > char *dummy; > > struct iio_channel_info *channels; > > - while ((c = getopt(argc, argv, "l:w:c:et:n:")) != -1) { > + while ((c = getopt(argc, argv, "l:w:c:et:n:g")) != -1) { > switch (c) { > case 'n': > device_name = optarg; > @@ -187,6 +188,9 @@ int main(int argc, char **argv) > case 'l': > buf_len = strtoul(optarg, &dummy, 10); > break; > + case 'g': > + notrigger = 1; > + break; > case '?': > return -1; > } > @@ -205,28 +209,32 @@ int main(int argc, char **argv) > printf("iio device number being used is %d\n", dev_num); > > asprintf(&dev_dir_name, "%siio:device%d", iio_dir, dev_num); > - if (trigger_name == NULL) { > - /* > - * Build the trigger name. If it is device associated its > - * name is <device_name>_dev[n] where n matches the device > - * number found above > - */ > - ret = asprintf(&trigger_name, > - "%s-dev%d", device_name, dev_num); > - if (ret < 0) { > - ret = -ENOMEM; > - goto error_ret; > + > + if (!notrigger) { > + if (trigger_name == NULL) { > + /* > + * Build the trigger name. If it is device associated > + * its name is <device_name>_dev[n] where n matches > + * the device number found above. > + */ > + ret = asprintf(&trigger_name, > + "%s-dev%d", device_name, dev_num); > + if (ret < 0) { > + ret = -ENOMEM; > + goto error_ret; > + } > } > - } > > - /* Verify the trigger exists */ > - trig_num = find_type_by_name(trigger_name, "trigger"); > - if (trig_num < 0) { > - printf("Failed to find the trigger %s\n", trigger_name); > - ret = -ENODEV; > - goto error_free_triggername; > - } > - printf("iio trigger number being used is %d\n", trig_num); > + /* Verify the trigger exists */ > + trig_num = find_type_by_name(trigger_name, "trigger"); > + if (trig_num < 0) { > + printf("Failed to find the trigger %s\n", trigger_name); > + ret = -ENODEV; > + goto error_free_triggername; > + } > + printf("iio trigger number being used is %d\n", trig_num); > + } else > + printf("trigger-less mode selected\n"); > > /* > * Parse the files in scan_elements to identify what channels are > @@ -250,14 +258,18 @@ int main(int argc, char **argv) > ret = -ENOMEM; > goto error_free_triggername; > } > - printf("%s %s\n", dev_dir_name, trigger_name); > - /* Set the device trigger to be the data ready trigger found above */ > - ret = write_sysfs_string_and_verify("trigger/current_trigger", > - dev_dir_name, > - trigger_name); > - if (ret < 0) { > - printf("Failed to write current_trigger file\n"); > - goto error_free_buf_dir_name; > + > + if (!notrigger) { > + printf("%s %s\n", dev_dir_name, trigger_name); > + /* Set the device trigger to be the data ready trigger found > + * above */ > + ret = write_sysfs_string_and_verify("trigger/current_trigger", > + dev_dir_name, > + trigger_name); > + if (ret < 0) { > + printf("Failed to write current_trigger file\n"); > + goto error_free_buf_dir_name; > + } > } > > /* Setup ring buffer parameters */ > @@ -327,9 +339,10 @@ int main(int argc, char **argv) > if (ret < 0) > goto error_close_buffer_access; > > - /* Disconnect the trigger - just write a dummy name. */ > - write_sysfs_string("trigger/current_trigger", > - dev_dir_name, "NULL"); > + if (!notrigger) > + /* Disconnect the trigger - just write a dummy name. */ > + write_sysfs_string("trigger/current_trigger", > + dev_dir_name, "NULL"); > > error_close_buffer_access: > close(fp); > ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-11-05 14:44 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-11-04 14:29 [PATCH 0/1] staging: iio: Add notrigger mode for generic_buffer Karol Wrona 2014-11-04 14:29 ` [PATCH 1/1] " Karol Wrona 2014-11-05 14:44 ` Jonathan Cameron
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.