From: Lars-Peter Clausen <lars@metafoo.de>
To: Octavian Purdila <octavian.purdila@intel.com>, jic23@kernel.org
Cc: knaack.h@gmx.de, pmeerw@pmeerw.net, linux-iio@vger.kernel.org,
linux-kernel@vger.kernel.org, adriana.reus@intel.com,
linux-api@vger.kernel.org
Subject: Re: [RFC PATCH 2/3] iio: allow better control for flushing the hardware fifo
Date: Sat, 02 May 2015 19:42:54 +0200 [thread overview]
Message-ID: <55450C9E.4060409@metafoo.de> (raw)
In-Reply-To: <1430306340-5026-3-git-send-email-octavian.purdila@intel.com>
On 04/29/2015 01:18 PM, Octavian Purdila wrote:
> Some applications need to be able to flush [1] the hardware fifo of
> the device and to receive events of when that happened [2] so that it
> can ignore stale data.
>
> This patch adds a new event (IIO_EV_TYPE_HWFIFO_FLUSHED) that should
> be sent to userspace when a flush has been completed. The application
> will be able to identify which are the samples to ignore based on the
> timestamp of the event.
>
> To allow applications to accurately generate a hardware fifo flush on
> demand, this patch also adds a new sysfs entry that triggers a
> hardware fifo flush when written to.
>
> [1] https://source.android.com/devices/sensors/hal-interface.html#flush_sensor
> [2] https://source.android.com/devices/sensors/hal-interface.html#metadata_flush_complete_events
Since there is no asynchronous queue for commands to be executed in IIO
adding a asynchronous completion event doesn't make too much sense. This is
something that needs to be handled at the HAL level.
The HAL needs to have a queue of commands that need to be executed where new
events can be added asynchronously, then has a loop which goes through the
commands in the queue and executes them, and once executed generated the
appropriate completion event.
I really wish that document would specify what is actually meant by flush.
Copy the FIFO content to a software buffer or discard the FIFO content.
>
> Signed-off-by: Octavian Purdila <octavian.purdila@intel.com>
> ---
> Documentation/ABI/testing/sysfs-bus-iio | 11 +++++++++++
> include/linux/iio/sysfs.h | 3 +++
> include/uapi/linux/iio/types.h | 1 +
> 3 files changed, 15 insertions(+)
>
> diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio
> index 866b4ec..bb4d8de 100644
> --- a/Documentation/ABI/testing/sysfs-bus-iio
> +++ b/Documentation/ABI/testing/sysfs-bus-iio
> @@ -1375,3 +1375,14 @@ Description:
> The emissivity ratio of the surface in the field of view of the
> contactless temperature sensor. Emissivity varies from 0 to 1,
> with 1 being the emissivity of a black body.
> +
> +What: /sys/bus/iio/devices/iio:deviceX/buffer/hwfifo_flush
> +KernelVersion: 4.2
> +Contact: linux-iio@vger.kernel.org
> +Description:
> + Write only entry that accepts a single strictly positive integer
> + specifying the number of samples to flush from the hardware fifo
> + to the device buffer. When the flush is completed an
> + IIO_EV_TYPE_HWFIFO_FLUSHED event is generated. The event has the
> + timestamp equal with the timestamp of last sample that was
> + flushed from the hardware fifo.
I'd prefer this to be handled through the normal read() API rather than
having a side channel for it. Big question is how though. We could specify
that reading in O_NONBLOCK mode will always read data if it is available and
not only if it is above the watermark threshold.
next prev parent reply other threads:[~2015-05-02 17:42 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-29 11:18 [RFC PATCH 0/3] allow better control for flushing the hardware fifo Octavian Purdila
2015-04-29 11:18 ` Octavian Purdila
[not found] ` <1430306340-5026-1-git-send-email-octavian.purdila-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-04-29 11:18 ` [RFC PATCH 1/3] iio: add hwfifo attributes helpers Octavian Purdila
2015-04-29 11:18 ` Octavian Purdila
2015-04-29 11:18 ` [RFC PATCH 2/3] iio: allow better control for flushing the hardware fifo Octavian Purdila
2015-04-29 11:18 ` Octavian Purdila
2015-05-02 17:42 ` Lars-Peter Clausen [this message]
[not found] ` <55450C9E.4060409-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
2015-05-03 6:11 ` Octavian Purdila
2015-05-03 6:11 ` Octavian Purdila
[not found] ` <CAE1zotKDQjQS70tY0NS6536pjmKW8mbH_p+2aOv0kM0075hgkA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-04 14:38 ` Lars-Peter Clausen
2015-05-04 14:38 ` Lars-Peter Clausen
[not found] ` <5547846F.50604-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
2015-05-04 15:36 ` Octavian Purdila
2015-05-04 15:36 ` Octavian Purdila
2015-04-29 11:19 ` [RFC PATCH 3/3] iio: accel: bmc150: add support for hwfifo_flush and flush events Octavian Purdila
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=55450C9E.4060409@metafoo.de \
--to=lars@metafoo.de \
--cc=adriana.reus@intel.com \
--cc=jic23@kernel.org \
--cc=knaack.h@gmx.de \
--cc=linux-api@vger.kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=octavian.purdila@intel.com \
--cc=pmeerw@pmeerw.net \
/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.