From: Jonathan Cameron <jic23@kernel.org>
To: "Pandruvada, Srinivas" <srinivas.pandruvada@intel.com>
Cc: "linux-iio@vger.kernel.org" <linux-iio@vger.kernel.org>
Subject: Re: KFiFo Poll support
Date: Mon, 27 Aug 2012 18:51:18 +0100 [thread overview]
Message-ID: <503BB396.1090200@kernel.org> (raw)
In-Reply-To: <4FA419E87744DF4DAECD5BCE1214B7A9193ADCB4@ORSMSX104.amr.corp.intel.com>
As this just conviently came up,
I've merged a 3 patch variant of the original series this was in.
Patch 1 was broken in to two as I was originally naughty and handled
some unrelated error cases whilst I was doing the conversion to
fixed record size use of kfifo.
Partly this sat in my queue for a long time because of a lack
of explicit feedback. Lars-Peter was kind enough to give it a
test, but wasn't really interested in the support so didn't
hammer it.
I may be the maintainer but I'd still like people to review
my patches!
(speaking of which... the push buffer stuff is still out there
and hopefully I'll get a chance to do another rebase of that
sometime in the next few days!)
Anyhow, the kfifo improvements will be in my togreg branch
shortly on kernel.org.
>
>
>
> You have circulated a patch to support polling on KFifo, but that was never merged.
>
>
>
> I have used in my tree with your authorship:
>
>
>
> commit ae09253bf19a607ea0614051ba0bdb04d5f23689
>
> Author: Jonathan Cameron <jic23@kernel.org>
>
> Date: Fri Jun 8 13:08:53 2012 -0700
>
>
>
> KFiFO : Poll support
>
>
>
> Implements poll system call support on IIO Kfifo buffers.
>
>
>
> Change-Id: I6739382b7b81951e5b4498fc04356b3652941058
>
> Signed-off-by: srinivas pandruvada <srinivas.pandruvada@intel.com>
>
>
>
> 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;
>
> }
>
>
>
> Thanks,
>
> Srinivas
>
prev parent reply other threads:[~2012-08-27 17:51 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-27 17:24 KFiFo Poll support Pandruvada, Srinivas
2012-08-27 17:51 ` Jonathan Cameron [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=503BB396.1090200@kernel.org \
--to=jic23@kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=srinivas.pandruvada@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.