lkml.org 
[lkml]   [2015]   [Nov]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH v3 3/5] Add support for receiving USBTMC USB488 SRQ notifications via poll/select
From
On Wed, Nov 11, 2015 at 1:16 PM, Dave Penkler <dpenkler@gmail.com> wrote:
> Background:
> In many situations operations on multiple instruments need to be
> synchronized. poll/select provide a convenient way of waiting on a number
> of different instruments and other peripherals simultaneously.
>
> Signed-off-by: Dave Penkler <dpenkler@gmail.com>
> ---
> drivers/usb/class/usbtmc.c | 23 +++++++++++++++++++++++
> 1 file changed, 23 insertions(+)
>
> diff --git a/drivers/usb/class/usbtmc.c b/drivers/usb/class/usbtmc.c
> index 2239cd0..bb9a6ab 100644
> --- a/drivers/usb/class/usbtmc.c
> +++ b/drivers/usb/class/usbtmc.c
> @@ -27,6 +27,7 @@
> #include <linux/uaccess.h>
> #include <linux/kref.h>
> #include <linux/slab.h>
> +#include <linux/poll.h>
> #include <linux/mutex.h>
> #include <linux/usb.h>
> #include <linux/usb/tmc.h>
> @@ -1193,6 +1194,27 @@ static int usbtmc_fasync(int fd, struct file *file, int on)
> return fasync_helper(fd, file, on, &data->fasync);
> }
>
> +static unsigned int usbtmc_poll(struct file *file, poll_table *wait)
> +{
> + struct usbtmc_device_data *data = file->private_data;
> + unsigned int mask = 0;

Redundant assignment.

> +
> + mutex_lock(&data->io_mutex);
> +
> + if (data->zombie) {
> + mask = POLLHUP | POLLERR;
> + goto no_poll;
> + }
> +
> + poll_wait(file, &data->waitq, wait);
> +
> + mask = (atomic_read(&data->srq_asserted)) ? POLLIN | POLLRDNORM : 0;
> +
> +no_poll:
> + mutex_unlock(&data->io_mutex);
> + return mask;
> +}
> +
> static const struct file_operations fops = {
> .owner = THIS_MODULE,
> .read = usbtmc_read,
> @@ -1201,6 +1223,7 @@ static const struct file_operations fops = {
> .release = usbtmc_release,
> .unlocked_ioctl = usbtmc_ioctl,
> .fasync = usbtmc_fasync,
> + .poll = usbtmc_poll,
> .llseek = default_llseek,
> };
>
> --
> 2.5.1
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/



--
With Best Regards,
Andy Shevchenko


\
 
 \ /
  Last update: 2015-11-11 20:21    [W:0.594 / U:0.040 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site