All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH] KFiFO : Poll support
       [not found] <1346089129-839-1-git-send-email-srinivas.pandruvada@intel.com>
@ 2012-08-27 17:53 ` Jonathan Cameron
  0 siblings, 0 replies; only message in thread
From: Jonathan Cameron @ 2012-08-27 17:53 UTC (permalink / raw)
  To: srinivas pandruvada; +Cc: linux-iio

On 08/27/2012 06:38 PM, srinivas pandruvada wrote:
> From: Jonathan Cameron <jic23@kernel.org>
> 
> Implements poll system call support on IIO Kfifo buffers.
> 
> Acked-by: srinivas pandruvada <srinivas.pandruvada@intel.com>
*laughs*
Delights of crossing emails.  Thanks this got to me before I pushed so
have added it :)
> ---
>  drivers/iio/kfifo_buf.c |    9 +++++++++
>  1 files changed, 9 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/iio/kfifo_buf.c b/drivers/iio/kfifo_buf.c
> index 6bf9d05..e8033a4 100644
> --- a/drivers/iio/kfifo_buf.c
> +++ b/drivers/iio/kfifo_buf.c
> @@ -6,6 +6,7 @@
>  #include <linux/kfifo.h>
>  #include <linux/mutex.h>
>  #include <linux/iio/kfifo_buf.h>
> +#include <linux/sched.h>
>  
>  struct iio_kfifo {
>  	struct iio_buffer buffer;
> @@ -35,6 +36,7 @@ static int iio_request_update_kfifo(struct iio_buffer *r)
>  	kfifo_free(&buf->kf);
>  	ret = __iio_allocate_kfifo(buf, buf->buffer.bytes_per_datum,
>  				   buf->buffer.length);
> +	r->stufftoread = false;
>  error_ret:
>  	return ret;
>  }
> @@ -97,6 +99,8 @@ static int iio_store_to_kfifo(struct iio_buffer *r,
>  	ret = kfifo_in(&kf->kf, data, r->bytes_per_datum);
>  	if (ret != r->bytes_per_datum)
>  		return -EBUSY;
> +	r->stufftoread = true;
> +	wake_up_interruptible(&r->pollq);
>  	return 0;
>  }
>  
> @@ -111,6 +115,11 @@ static int iio_read_first_n_kfifo(struct iio_buffer *r,
>  
>  	n = rounddown(n, r->bytes_per_datum);
>  	ret = kfifo_to_user(&kf->kf, buf, n, &copied);
> +	if (kfifo_is_empty(&kf->kf))
> +		r->stufftoread = false;
> +	/* verify it is still empty to avoid race */
> +	if (!kfifo_is_empty(&kf->kf))
> +		r->stufftoread = true;
>  
>  	return copied;
>  }
> 

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2012-08-27 17:53 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1346089129-839-1-git-send-email-srinivas.pandruvada@intel.com>
2012-08-27 17:53 ` [PATCH] KFiFO : Poll support 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.