linux-iio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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);
>  
>  /**
> 

      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).