From: Jonathan Cameron <jic23@kernel.org>
To: Lars-Peter Clausen <lars@metafoo.de>
Cc: linux-iio@vger.kernel.org
Subject: Re: [PATCH 01/27] iio: iio_push_to_buffers(): Change type of 'data' to const void *
Date: Sun, 15 Sep 2013 19:04:44 +0100 [thread overview]
Message-ID: <5235F6BC.8060203@kernel.org> (raw)
In-Reply-To: <1379263880-18405-1-git-send-email-lars@metafoo.de>
On 09/15/13 17:50, Lars-Peter Clausen wrote:
> Change the type of the 'data' parameter for iio_push_to_buffers() from 'u8 *' to
> 'const void *'. Drivers typically use the correct type (e.g. __be16 *) for their
> data buffer. When passing the buffer to iio_push_to_buffers() it needs to be
> cast to 'u8 *' for the compiler to not complain (and also having to add __force
> if we want to keep sparse happy as well). Since the buffer implementation should
> not care about the data layout (except the size of one sample) using a void
> pointer is the correct thing to do. Also make it const as the buffer
> implementations are not supposed to modify it.
>
> Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Nice little cleanup. I can't for the life of me remember how
we ended up with that being u8 *. Probably something to do with the
original sw_ring buffer implementation.
Applied to the togreg branch of iio.git
Thanks,
> ---
> drivers/iio/buffer_cb.c | 6 +++---
> drivers/iio/industrialio-buffer.c | 10 +++++-----
> drivers/iio/kfifo_buf.c | 2 +-
> include/linux/iio/buffer.h | 6 +++---
> include/linux/iio/consumer.h | 2 +-
> 5 files changed, 13 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/iio/buffer_cb.c b/drivers/iio/buffer_cb.c
> index 9d19ba7..5f40b3a 100644
> --- a/drivers/iio/buffer_cb.c
> +++ b/drivers/iio/buffer_cb.c
> @@ -7,12 +7,12 @@
>
> struct iio_cb_buffer {
> struct iio_buffer buffer;
> - int (*cb)(u8 *data, void *private);
> + int (*cb)(const void *data, void *private);
> void *private;
> struct iio_channel *channels;
> };
>
> -static int iio_buffer_cb_store_to(struct iio_buffer *buffer, u8 *data)
> +static int iio_buffer_cb_store_to(struct iio_buffer *buffer, const void *data)
> {
> struct iio_cb_buffer *cb_buff = container_of(buffer,
> struct iio_cb_buffer,
> @@ -26,7 +26,7 @@ static struct iio_buffer_access_funcs iio_cb_access = {
> };
>
> struct iio_cb_buffer *iio_channel_get_all_cb(struct device *dev,
> - int (*cb)(u8 *data,
> + int (*cb)(const void *data,
> void *private),
> void *private)
> {
> diff --git a/drivers/iio/industrialio-buffer.c b/drivers/iio/industrialio-buffer.c
> index 7ea2edb..a7ac4b5 100644
> --- a/drivers/iio/industrialio-buffer.c
> +++ b/drivers/iio/industrialio-buffer.c
> @@ -769,8 +769,8 @@ struct iio_demux_table {
> struct list_head l;
> };
>
> -static unsigned char *iio_demux(struct iio_buffer *buffer,
> - unsigned char *datain)
> +static const void *iio_demux(struct iio_buffer *buffer,
> + const void *datain)
> {
> struct iio_demux_table *t;
>
> @@ -783,9 +783,9 @@ static unsigned char *iio_demux(struct iio_buffer *buffer,
> return buffer->demux_bounce;
> }
>
> -static int iio_push_to_buffer(struct iio_buffer *buffer, unsigned char *data)
> +static int iio_push_to_buffer(struct iio_buffer *buffer, const void *data)
> {
> - unsigned char *dataout = iio_demux(buffer, data);
> + const void *dataout = iio_demux(buffer, data);
>
> return buffer->access->store_to(buffer, dataout);
> }
> @@ -800,7 +800,7 @@ static void iio_buffer_demux_free(struct iio_buffer *buffer)
> }
>
>
> -int iio_push_to_buffers(struct iio_dev *indio_dev, unsigned char *data)
> +int iio_push_to_buffers(struct iio_dev *indio_dev, const void *data)
> {
> int ret;
> struct iio_buffer *buf;
> diff --git a/drivers/iio/kfifo_buf.c b/drivers/iio/kfifo_buf.c
> index 1bea41b..538d461 100644
> --- a/drivers/iio/kfifo_buf.c
> +++ b/drivers/iio/kfifo_buf.c
> @@ -95,7 +95,7 @@ static int iio_set_length_kfifo(struct iio_buffer *r, int length)
> }
>
> static int iio_store_to_kfifo(struct iio_buffer *r,
> - u8 *data)
> + const void *data)
> {
> int ret;
> struct iio_kfifo *kf = iio_to_kfifo(r);
> diff --git a/include/linux/iio/buffer.h b/include/linux/iio/buffer.h
> index 2bac0eb..e5507e9 100644
> --- a/include/linux/iio/buffer.h
> +++ b/include/linux/iio/buffer.h
> @@ -36,7 +36,7 @@ struct iio_buffer;
> * any of them not existing.
> **/
> struct iio_buffer_access_funcs {
> - int (*store_to)(struct iio_buffer *buffer, u8 *data);
> + int (*store_to)(struct iio_buffer *buffer, const void *data);
> int (*read_first_n)(struct iio_buffer *buffer,
> size_t n,
> char __user *buf);
> @@ -81,7 +81,7 @@ struct iio_buffer {
> bool stufftoread;
> const struct attribute_group *attrs;
> struct list_head demux_list;
> - unsigned char *demux_bounce;
> + void *demux_bounce;
> struct list_head buffer_list;
> };
>
> @@ -120,7 +120,7 @@ int iio_scan_mask_set(struct iio_dev *indio_dev,
> * @indio_dev: iio_dev structure for device.
> * @data: Full scan.
> */
> -int iio_push_to_buffers(struct iio_dev *indio_dev, unsigned char *data);
> +int iio_push_to_buffers(struct iio_dev *indio_dev, const void *data);
>
> int iio_update_demux(struct iio_dev *indio_dev);
>
> diff --git a/include/linux/iio/consumer.h b/include/linux/iio/consumer.h
> index 833926c..2752b1f 100644
> --- a/include/linux/iio/consumer.h
> +++ b/include/linux/iio/consumer.h
> @@ -77,7 +77,7 @@ struct iio_cb_buffer;
> * fail.
> */
> struct iio_cb_buffer *iio_channel_get_all_cb(struct device *dev,
> - int (*cb)(u8 *data,
> + int (*cb)(const void *data,
> void *private),
> void *private);
> /**
>
prev parent reply other threads:[~2013-09-15 17:04 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-15 16:50 [PATCH 01/27] iio: iio_push_to_buffers(): Change type of 'data' to const void * Lars-Peter Clausen
2013-09-15 16:50 ` [PATCH 02/27] iio: Remove unnecessary casts for iio_push_to_buffers() Lars-Peter Clausen
2013-09-15 18:05 ` Jonathan Cameron
2013-09-15 16:50 ` [PATCH 03/27] staging:iio: " Lars-Peter Clausen
2013-09-15 18:06 ` Jonathan Cameron
2013-09-15 16:50 ` [PATCH 04/27] iio: Add iio_push_buffers_with_timestamp() helper Lars-Peter Clausen
2013-09-15 17:44 ` Peter Meerwald
2013-09-16 7:52 ` Jonathan Cameron
2013-09-16 7:58 ` Peter Meerwald
2013-09-16 8:19 ` Lars-Peter Clausen
2013-09-16 18:35 ` Jonathan Cameron
2013-09-16 8:19 ` Lars-Peter Clausen
2013-09-16 18:37 ` Jonathan Cameron
2013-09-16 20:42 ` Lars-Peter Clausen
2013-09-15 16:50 ` [PATCH 05/27] iio:bma180: Use iio_push_buffers_with_timestamp() Lars-Peter Clausen
2013-09-15 16:50 ` [PATCH 06/27] iio:ad7266: Use iio_push_to_buffers_with_timestamp() Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 07/27] iio:ad7298: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 08/27] iio:ad7476: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 09/27] iio:ad7887: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 10/27] iio:ad7923: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 11/27] iio:ad_sigma_delta: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 12/27] iio:at91_adc: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 13/27] iio:max1363: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 14/27] iio:st_sensors: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 15/27] iio:itg3200: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 16/27] iio:adis16400: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 17/27] iio:adis_lib: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 18/27] iio:mpu6050: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 19/27] iio:adjd_s311: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 20/27] iio:tcs3472: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 21/27] iio:gp2ap020a00f: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 22/27] staging:iio:lis3l02dq: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 23/27] staging:iio:ad7606: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 24/27] staging:iio:ad799x: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 25/27] staging:iio:mxs-lradc: " Lars-Peter Clausen
2013-09-16 13:53 ` Marek Vasut
2013-09-16 16:54 ` Lars-Peter Clausen
2013-09-16 17:08 ` Marek Vasut
2013-09-15 16:51 ` [PATCH 26/27] staging:iio:dummy: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 27/27] staging:iio:ade7758: " Lars-Peter Clausen
2013-09-15 18:04 ` 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=5235F6BC.8060203@kernel.org \
--to=jic23@kernel.org \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
/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.