From: Jonathan Cameron <jic23@kernel.org>
To: Lars-Peter Clausen <lars@metafoo.de>
Cc: linux-iio@vger.kernel.org,
Oleksandr Kravchenko <o.v.kravchenko@globallogic.com>,
Josh Wu <josh.wu@atmel.com>,
Denis Ciocca <denis.ciocca@gmail.com>,
Manuel Stahl <manuel.stahl@iis.fraunhofer.de>,
Ge Gao <ggao@invensense.com>, Peter Meerwald <pmeerw@pmeerw.net>,
Jacek Anaszewski <j.anaszewski@samsung.com>,
Fabio Estevam <fabio.estevam@freescale.com>,
Marek Vasut <marex@denx.de>
Subject: Re: [PATCH 01/24] iio: Add iio_push_buffers_with_timestamp() helper
Date: Sat, 21 Sep 2013 13:08:19 +0100 [thread overview]
Message-ID: <523D8C33.1000607@kernel.org> (raw)
In-Reply-To: <1379595601-26448-1-git-send-email-lars@metafoo.de>
On 09/19/13 13:59, Lars-Peter Clausen wrote:
> Drivers using software buffers often store the timestamp in their data buffer
> before calling iio_push_to_buffers() with that data buffer. Storing the
> timestamp in the buffer usually involves some ugly pointer arithmetic. This
> patch adds a new helper function called iio_push_buffers_with_timestamp() which
> is similar to iio_push_to_buffers but takes an additional timestamp parameter.
> The function will help to hide to uglyness in one central place instead of
> exposing it in every driver. If timestamps are enabled for the IIO device
> iio_push_buffers_with_timestamp() will store the timestamp as the last element
> in buffer, before passing the buffer on to iio_push_buffers(). The buffer needs
> large enough to hold the timestamp in this case. If timestamps are disabled
> iio_push_buffers_with_timestamp() will behave just like iio_push_buffers().
>
> Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
> Cc: Oleksandr Kravchenko <o.v.kravchenko@globallogic.com>
> Cc: Josh Wu <josh.wu@atmel.com>
> Cc: Denis Ciocca <denis.ciocca@gmail.com>
> Cc: Manuel Stahl <manuel.stahl@iis.fraunhofer.de>
> Cc: Ge Gao <ggao@invensense.com>
> Cc: Peter Meerwald <pmeerw@pmeerw.net>
> Cc: Jacek Anaszewski <j.anaszewski@samsung.com>
> Cc: Fabio Estevam <fabio.estevam@freescale.com>
> Cc: Marek Vasut <marex@denx.de>
Applied to the togreg branch of iio.git
Thanks
> ---
> include/linux/iio/buffer.h | 25 +++++++++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
> diff --git a/include/linux/iio/buffer.h b/include/linux/iio/buffer.h
> index e5507e9..a1124bd 100644
> --- a/include/linux/iio/buffer.h
> +++ b/include/linux/iio/buffer.h
> @@ -122,6 +122,31 @@ int iio_scan_mask_set(struct iio_dev *indio_dev,
> */
> int iio_push_to_buffers(struct iio_dev *indio_dev, const void *data);
>
> +/*
> + * iio_push_to_buffers_with_timestamp() - push data and timestamp to buffers
> + * @indio_dev: iio_dev structure for device.
> + * @data: sample data
> + * @timestamp: timestamp for the sample data
> + *
> + * Pushes data to the IIO device's buffers. If timestamps are enabled for the
> + * device the function will store the supplied timestamp as the last element in
> + * the sample data buffer before pushing it to the device buffers. The sample
> + * data buffer needs to be large enough to hold the additional timestamp
> + * (usually the buffer should be indio->scan_bytes bytes large).
> + *
> + * Returns 0 on success, a negative error code otherwise.
> + */
> +static inline int iio_push_to_buffers_with_timestamp(struct iio_dev *indio_dev,
> + void *data, int64_t timestamp)
> +{
> + if (indio_dev->scan_timestamp) {
> + size_t ts_offset = indio_dev->scan_bytes / sizeof(int64_t) - 1;
> + ((int64_t *)data)[ts_offset] = timestamp;
> + }
> +
> + return iio_push_to_buffers(indio_dev, data);
> +}
> +
> int iio_update_demux(struct iio_dev *indio_dev);
>
> /**
>
prev parent reply other threads:[~2013-09-21 11:08 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-19 12:59 [PATCH 01/24] iio: Add iio_push_buffers_with_timestamp() helper Lars-Peter Clausen
2013-09-19 12:59 ` [PATCH 02/24] iio:bma180: Use iio_push_buffers_with_timestamp() Lars-Peter Clausen
2013-09-21 12:08 ` Jonathan Cameron
2013-09-19 12:59 ` [PATCH 03/24] iio:ad7266: Use iio_push_to_buffers_with_timestamp() Lars-Peter Clausen
2013-09-21 12:10 ` Jonathan Cameron
2013-09-19 12:59 ` [PATCH 04/24] iio:ad7298: " Lars-Peter Clausen
2013-09-21 12:11 ` Jonathan Cameron
2013-09-19 12:59 ` [PATCH 05/24] iio:ad7476: " Lars-Peter Clausen
2013-09-21 12:11 ` Jonathan Cameron
2013-09-19 12:59 ` [PATCH 06/24] iio:ad7887: " Lars-Peter Clausen
2013-09-21 12:11 ` Jonathan Cameron
2013-09-19 12:59 ` [PATCH 07/24] iio:ad7923: " Lars-Peter Clausen
2013-09-21 12:12 ` Jonathan Cameron
2013-09-19 12:59 ` [PATCH 08/24] iio:ad_sigma_delta: " Lars-Peter Clausen
2013-09-21 12:12 ` Jonathan Cameron
2013-09-19 12:59 ` [PATCH 09/24] iio:at91_adc: " Lars-Peter Clausen
2013-09-21 12:12 ` Jonathan Cameron
2013-09-19 12:59 ` [PATCH 10/24] iio:max1363: " Lars-Peter Clausen
2013-09-21 12:13 ` Jonathan Cameron
2013-09-19 12:59 ` [PATCH 11/24] iio:st_sensors: " Lars-Peter Clausen
2013-09-21 12:13 ` Jonathan Cameron
2013-09-19 12:59 ` [PATCH 12/24] iio:itg3200: " Lars-Peter Clausen
2013-09-21 12:14 ` Jonathan Cameron
2013-09-19 12:59 ` [PATCH 13/24] iio:adis16400: " Lars-Peter Clausen
2013-09-21 12:15 ` Jonathan Cameron
2013-09-19 12:59 ` [PATCH 14/24] iio:adis_lib: " Lars-Peter Clausen
2013-09-21 12:15 ` Jonathan Cameron
2013-09-19 12:59 ` [PATCH 15/24] iio:mpu6050: " Lars-Peter Clausen
2013-09-21 12:16 ` Jonathan Cameron
2013-09-19 12:59 ` [PATCH 16/24] iio:adjd_s311: " Lars-Peter Clausen
2013-09-21 12:16 ` Jonathan Cameron
2013-09-19 12:59 ` [PATCH 17/24] iio:tcs3472: " Lars-Peter Clausen
2013-09-21 12:17 ` Jonathan Cameron
2013-09-19 12:59 ` [PATCH 18/24] iio:gp2ap020a00f: " Lars-Peter Clausen
2013-09-21 12:17 ` Jonathan Cameron
2013-09-19 12:59 ` [PATCH 19/24] staging:iio:lis3l02dq: " Lars-Peter Clausen
2013-09-21 12:18 ` Jonathan Cameron
2013-09-19 12:59 ` [PATCH 20/24] staging:iio:ad7606: " Lars-Peter Clausen
2013-09-21 12:18 ` Jonathan Cameron
2013-09-19 12:59 ` [PATCH 21/24] staging:iio:ad799x: " Lars-Peter Clausen
2013-09-21 12:19 ` Jonathan Cameron
2013-09-19 12:59 ` [PATCH 22/24] staging:iio:mxs-lradc: " Lars-Peter Clausen
2013-09-21 12:19 ` Jonathan Cameron
2013-09-19 13:00 ` [PATCH 23/24] staging:iio:dummy: " Lars-Peter Clausen
2013-09-21 12:19 ` Jonathan Cameron
2013-09-19 13:00 ` [PATCH 24/24] staging:iio:ade7758: " Lars-Peter Clausen
2013-09-21 12:20 ` Jonathan Cameron
2013-09-21 12:08 ` 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=523D8C33.1000607@kernel.org \
--to=jic23@kernel.org \
--cc=denis.ciocca@gmail.com \
--cc=fabio.estevam@freescale.com \
--cc=ggao@invensense.com \
--cc=j.anaszewski@samsung.com \
--cc=josh.wu@atmel.com \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=manuel.stahl@iis.fraunhofer.de \
--cc=marex@denx.de \
--cc=o.v.kravchenko@globallogic.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).