From: Jonathan Cameron <jic23@kernel.org>
To: Guenter Roeck <linux@roeck-us.net>
Cc: linux-iio@vger.kernel.org, devicetree-discuss@lists.ozlabs.org,
Naveen Krishna Chatradhi <ch.naveen@samsung.com>,
Lars-Peter Clausen <lars@metafoo.de>,
Doug Anderson <dianders@chromium.org>,
Tomasz Figa <tomasz.figa@gmail.com>,
Grant Likely <grant.likely@secretlab.ca>,
Rob Herring <rob.herring@calxeda.com>
Subject: Re: [RFC 08/11] iio: Update iio_channel_get_all and iio_channel_get_all_cb API
Date: Sat, 02 Feb 2013 10:14:34 +0000 [thread overview]
Message-ID: <510CE70A.60002@kernel.org> (raw)
In-Reply-To: <1359668588-13678-9-git-send-email-linux@roeck-us.net>
On 01/31/2013 09:43 PM, Guenter Roeck wrote:
> Pass device pointer instead of device name as parameter to iio_channel_get_all
> and iio_channel_get_all_cb. This will enable us to use OF information to
> retrieve consumer channel information.
>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Applied with unused 'lists' variable dropped.
> ---
> drivers/iio/buffer_cb.c | 4 ++--
> drivers/iio/inkern.c | 6 ++++--
> drivers/staging/iio/iio_hwmon.c | 10 +++++++---
> include/linux/iio/consumer.h | 8 ++++----
> 4 files changed, 17 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/iio/buffer_cb.c b/drivers/iio/buffer_cb.c
> index 4d40e24..9201022 100644
> --- a/drivers/iio/buffer_cb.c
> +++ b/drivers/iio/buffer_cb.c
> @@ -25,7 +25,7 @@ static struct iio_buffer_access_funcs iio_cb_access = {
> .store_to = &iio_buffer_cb_store_to,
> };
>
> -struct iio_cb_buffer *iio_channel_get_all_cb(const char *name,
> +struct iio_cb_buffer *iio_channel_get_all_cb(struct device *dev,
> int (*cb)(u8 *data,
> void *private),
> void *private)
> @@ -46,7 +46,7 @@ struct iio_cb_buffer *iio_channel_get_all_cb(const char *name,
> cb_buff->buffer.access = &iio_cb_access;
> INIT_LIST_HEAD(&cb_buff->buffer.demux_list);
>
> - cb_buff->channels = iio_channel_get_all(name);
> + cb_buff->channels = iio_channel_get_all(dev);
> if (IS_ERR(cb_buff->channels)) {
> ret = PTR_ERR(cb_buff->channels);
> goto error_free_cb_buff;
> diff --git a/drivers/iio/inkern.c b/drivers/iio/inkern.c
> index d55e98f..58d0ffe 100644
> --- a/drivers/iio/inkern.c
> +++ b/drivers/iio/inkern.c
> @@ -167,16 +167,18 @@ void iio_channel_release(struct iio_channel *channel)
> }
> EXPORT_SYMBOL_GPL(iio_channel_release);
>
> -struct iio_channel *iio_channel_get_all(const char *name)
> +struct iio_channel *iio_channel_get_all(struct device *dev)
> {
> + const char *name;
> struct iio_channel *chans;
> struct iio_map_internal *c = NULL;
> int nummaps = 0;
> int mapind = 0;
> int i, ret;
>
> - if (name == NULL)
> + if (dev == NULL)
> return ERR_PTR(-EINVAL);
> + name = dev_name(dev);
>
> mutex_lock(&iio_map_list_lock);
> /* first count the matching maps */
> diff --git a/drivers/staging/iio/iio_hwmon.c b/drivers/staging/iio/iio_hwmon.c
> index 6a5bc5f..a4fce64 100644
> --- a/drivers/staging/iio/iio_hwmon.c
> +++ b/drivers/staging/iio/iio_hwmon.c
> @@ -71,14 +71,18 @@ static int iio_hwmon_probe(struct platform_device *pdev)
> int ret, i;
> int in_i = 1, temp_i = 1, curr_i = 1;
> enum iio_chan_type type;
> + struct iio_channel *channels;
> + const __be32 *list;
> +
> + channels = iio_channel_get_all(dev);
> + if (IS_ERR(channels))
> + return PTR_ERR(channels);
>
> st = devm_kzalloc(dev, sizeof(*st), GFP_KERNEL);
> if (st == NULL)
> return -ENOMEM;
>
> - st->channels = iio_channel_get_all(dev_name(dev));
> - if (IS_ERR(st->channels))
> - return PTR_ERR(st->channels);
> + st->channels = channels;
>
> /* count how many attributes we have */
> while (st->channels[st->num_channels].indio_dev)
> diff --git a/include/linux/iio/consumer.h b/include/linux/iio/consumer.h
> index 16c35ac..6c44167 100644
> --- a/include/linux/iio/consumer.h
> +++ b/include/linux/iio/consumer.h
> @@ -48,14 +48,14 @@ void iio_channel_release(struct iio_channel *chan);
>
> /**
> * iio_channel_get_all() - get all channels associated with a client
> - * @name: name of consumer device.
> + * @dev: Pointer to consumer device.
> *
> * Returns an array of iio_channel structures terminated with one with
> * null iio_dev pointer.
> * This function is used by fairly generic consumers to get all the
> * channels registered as having this consumer.
> */
> -struct iio_channel *iio_channel_get_all(const char *name);
> +struct iio_channel *iio_channel_get_all(struct device *dev);
>
> /**
> * iio_channel_release_all() - reverse iio_channel_get_all
> @@ -66,7 +66,7 @@ void iio_channel_release_all(struct iio_channel *chan);
> struct iio_cb_buffer;
> /**
> * iio_channel_get_all_cb() - register callback for triggered capture
> - * @name: Name of client device.
> + * @dev: Pointer to client device.
> * @cb: Callback function.
> * @private: Private data passed to callback.
> *
> @@ -74,7 +74,7 @@ struct iio_cb_buffer;
> * So if the channels requested come from different devices this will
> * fail.
> */
> -struct iio_cb_buffer *iio_channel_get_all_cb(const char *name,
> +struct iio_cb_buffer *iio_channel_get_all_cb(struct device *dev,
> int (*cb)(u8 *data,
> void *private),
> void *private);
>
WARNING: multiple messages have this Message-ID (diff)
From: Jonathan Cameron <jic23-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: Guenter Roeck <linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
Cc: linux-iio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
Naveen Krishna Chatradhi
<ch.naveen-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>,
Lars-Peter Clausen <lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>,
Doug Anderson <dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>,
Tomasz Figa <tomasz.figa-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Grant Likely
<grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>,
Rob Herring <rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org>
Subject: Re: [RFC 08/11] iio: Update iio_channel_get_all and iio_channel_get_all_cb API
Date: Sat, 02 Feb 2013 10:14:34 +0000 [thread overview]
Message-ID: <510CE70A.60002@kernel.org> (raw)
In-Reply-To: <1359668588-13678-9-git-send-email-linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
On 01/31/2013 09:43 PM, Guenter Roeck wrote:
> Pass device pointer instead of device name as parameter to iio_channel_get_all
> and iio_channel_get_all_cb. This will enable us to use OF information to
> retrieve consumer channel information.
>
> Signed-off-by: Guenter Roeck <linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
Applied with unused 'lists' variable dropped.
> ---
> drivers/iio/buffer_cb.c | 4 ++--
> drivers/iio/inkern.c | 6 ++++--
> drivers/staging/iio/iio_hwmon.c | 10 +++++++---
> include/linux/iio/consumer.h | 8 ++++----
> 4 files changed, 17 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/iio/buffer_cb.c b/drivers/iio/buffer_cb.c
> index 4d40e24..9201022 100644
> --- a/drivers/iio/buffer_cb.c
> +++ b/drivers/iio/buffer_cb.c
> @@ -25,7 +25,7 @@ static struct iio_buffer_access_funcs iio_cb_access = {
> .store_to = &iio_buffer_cb_store_to,
> };
>
> -struct iio_cb_buffer *iio_channel_get_all_cb(const char *name,
> +struct iio_cb_buffer *iio_channel_get_all_cb(struct device *dev,
> int (*cb)(u8 *data,
> void *private),
> void *private)
> @@ -46,7 +46,7 @@ struct iio_cb_buffer *iio_channel_get_all_cb(const char *name,
> cb_buff->buffer.access = &iio_cb_access;
> INIT_LIST_HEAD(&cb_buff->buffer.demux_list);
>
> - cb_buff->channels = iio_channel_get_all(name);
> + cb_buff->channels = iio_channel_get_all(dev);
> if (IS_ERR(cb_buff->channels)) {
> ret = PTR_ERR(cb_buff->channels);
> goto error_free_cb_buff;
> diff --git a/drivers/iio/inkern.c b/drivers/iio/inkern.c
> index d55e98f..58d0ffe 100644
> --- a/drivers/iio/inkern.c
> +++ b/drivers/iio/inkern.c
> @@ -167,16 +167,18 @@ void iio_channel_release(struct iio_channel *channel)
> }
> EXPORT_SYMBOL_GPL(iio_channel_release);
>
> -struct iio_channel *iio_channel_get_all(const char *name)
> +struct iio_channel *iio_channel_get_all(struct device *dev)
> {
> + const char *name;
> struct iio_channel *chans;
> struct iio_map_internal *c = NULL;
> int nummaps = 0;
> int mapind = 0;
> int i, ret;
>
> - if (name == NULL)
> + if (dev == NULL)
> return ERR_PTR(-EINVAL);
> + name = dev_name(dev);
>
> mutex_lock(&iio_map_list_lock);
> /* first count the matching maps */
> diff --git a/drivers/staging/iio/iio_hwmon.c b/drivers/staging/iio/iio_hwmon.c
> index 6a5bc5f..a4fce64 100644
> --- a/drivers/staging/iio/iio_hwmon.c
> +++ b/drivers/staging/iio/iio_hwmon.c
> @@ -71,14 +71,18 @@ static int iio_hwmon_probe(struct platform_device *pdev)
> int ret, i;
> int in_i = 1, temp_i = 1, curr_i = 1;
> enum iio_chan_type type;
> + struct iio_channel *channels;
> + const __be32 *list;
> +
> + channels = iio_channel_get_all(dev);
> + if (IS_ERR(channels))
> + return PTR_ERR(channels);
>
> st = devm_kzalloc(dev, sizeof(*st), GFP_KERNEL);
> if (st == NULL)
> return -ENOMEM;
>
> - st->channels = iio_channel_get_all(dev_name(dev));
> - if (IS_ERR(st->channels))
> - return PTR_ERR(st->channels);
> + st->channels = channels;
>
> /* count how many attributes we have */
> while (st->channels[st->num_channels].indio_dev)
> diff --git a/include/linux/iio/consumer.h b/include/linux/iio/consumer.h
> index 16c35ac..6c44167 100644
> --- a/include/linux/iio/consumer.h
> +++ b/include/linux/iio/consumer.h
> @@ -48,14 +48,14 @@ void iio_channel_release(struct iio_channel *chan);
>
> /**
> * iio_channel_get_all() - get all channels associated with a client
> - * @name: name of consumer device.
> + * @dev: Pointer to consumer device.
> *
> * Returns an array of iio_channel structures terminated with one with
> * null iio_dev pointer.
> * This function is used by fairly generic consumers to get all the
> * channels registered as having this consumer.
> */
> -struct iio_channel *iio_channel_get_all(const char *name);
> +struct iio_channel *iio_channel_get_all(struct device *dev);
>
> /**
> * iio_channel_release_all() - reverse iio_channel_get_all
> @@ -66,7 +66,7 @@ void iio_channel_release_all(struct iio_channel *chan);
> struct iio_cb_buffer;
> /**
> * iio_channel_get_all_cb() - register callback for triggered capture
> - * @name: Name of client device.
> + * @dev: Pointer to client device.
> * @cb: Callback function.
> * @private: Private data passed to callback.
> *
> @@ -74,7 +74,7 @@ struct iio_cb_buffer;
> * So if the channels requested come from different devices this will
> * fail.
> */
> -struct iio_cb_buffer *iio_channel_get_all_cb(const char *name,
> +struct iio_cb_buffer *iio_channel_get_all_cb(struct device *dev,
> int (*cb)(u8 *data,
> void *private),
> void *private);
>
next prev parent reply other threads:[~2013-02-02 10:14 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-31 21:42 [RFC 00/11] staging/iio: Devicetree support Guenter Roeck
2013-01-31 21:42 ` Guenter Roeck
2013-01-31 21:42 ` [PATCH 01/11] staging/iio: (iio_hwmon) Use devm_kzalloc Guenter Roeck
2013-01-31 21:42 ` Guenter Roeck
2013-02-02 9:50 ` Jonathan Cameron
2013-02-02 9:50 ` Jonathan Cameron
2013-01-31 21:42 ` [PATCH 02/11] staging/iio: (iio_hwmon) Add support for sysfs name attribute Guenter Roeck
2013-01-31 21:42 ` Guenter Roeck
2013-02-02 9:52 ` Jonathan Cameron
2013-02-02 9:52 ` Jonathan Cameron
2013-01-31 21:43 ` [PATCH 03/11] staging/iio: (iio_hwmon) Basic devicetree support Guenter Roeck
2013-01-31 21:43 ` Guenter Roeck
2013-02-02 9:54 ` Jonathan Cameron
2013-02-02 9:54 ` Jonathan Cameron
2013-01-31 21:43 ` [PATCH 04/11] iio/adc: (lp8788) Provide OF node information to iio device Guenter Roeck
2013-01-31 21:43 ` Guenter Roeck
2013-02-02 9:55 ` Jonathan Cameron
2013-02-02 9:55 ` Jonathan Cameron
2013-01-31 21:43 ` [PATCH 05/11] iio/adc: (max1363) " Guenter Roeck
2013-01-31 21:43 ` Guenter Roeck
2013-02-02 10:06 ` Jonathan Cameron
2013-02-02 10:06 ` Jonathan Cameron
2013-01-31 21:43 ` [PATCH 06/11] iio/adc: (max1363) Remove duplicate code Guenter Roeck
2013-01-31 21:43 ` Guenter Roeck
2013-02-02 10:07 ` Jonathan Cameron
2013-02-02 10:07 ` Jonathan Cameron
2013-01-31 21:43 ` [PATCH 07/11] iio/adc: (max1363) Fix data conversion problems Guenter Roeck
2013-01-31 21:43 ` Guenter Roeck
2013-02-02 10:08 ` Jonathan Cameron
2013-02-02 10:08 ` Jonathan Cameron
2013-01-31 21:43 ` [RFC 08/11] iio: Update iio_channel_get_all and iio_channel_get_all_cb API Guenter Roeck
2013-01-31 21:43 ` Guenter Roeck
2013-02-02 10:14 ` Jonathan Cameron [this message]
2013-02-02 10:14 ` Jonathan Cameron
2013-01-31 21:43 ` [RFC 09/11] iio: Simplify iio_map_array_unregister API Guenter Roeck
2013-01-31 21:43 ` Guenter Roeck
2013-02-02 10:16 ` Jonathan Cameron
2013-02-02 10:16 ` Jonathan Cameron
2013-01-31 21:43 ` [RFC 10/11] iio: Add OF support Guenter Roeck
2013-01-31 21:43 ` Guenter Roeck
2013-01-31 22:20 ` Peter Meerwald
2013-01-31 22:46 ` Guenter Roeck
2013-02-01 11:58 ` Lars-Peter Clausen
2013-02-01 11:58 ` Lars-Peter Clausen
2013-02-01 14:33 ` Guenter Roeck
2013-02-01 14:33 ` Guenter Roeck
2013-02-01 14:59 ` Lars-Peter Clausen
2013-02-01 14:59 ` Lars-Peter Clausen
2013-02-01 19:42 ` Guenter Roeck
2013-02-01 19:42 ` Guenter Roeck
2013-02-02 14:37 ` Lars-Peter Clausen
2013-02-02 14:37 ` Lars-Peter Clausen
2013-02-02 16:14 ` Guenter Roeck
2013-02-02 16:14 ` Guenter Roeck
2013-02-02 10:29 ` Jonathan Cameron
2013-02-02 10:29 ` Jonathan Cameron
2013-02-02 16:10 ` Guenter Roeck
2013-02-02 16:10 ` Guenter Roeck
2013-02-03 11:39 ` Jonathan Cameron
2013-02-03 11:39 ` Jonathan Cameron
2013-02-03 11:47 ` Lars-Peter Clausen
2013-02-03 11:47 ` Lars-Peter Clausen
2013-02-03 11:52 ` Lars-Peter Clausen
2013-02-03 11:52 ` Lars-Peter Clausen
2013-02-03 11:57 ` Jonathan Cameron
2013-02-03 11:57 ` Jonathan Cameron
2013-02-03 16:28 ` Guenter Roeck
2013-02-03 16:28 ` Guenter Roeck
2013-01-31 21:43 ` [RFC 11/11] iio/adc: (max1363) Add basic OF bindings and external vref support Guenter Roeck
2013-01-31 21:43 ` Guenter Roeck
2013-02-02 10:33 ` Jonathan Cameron
2013-02-02 10:33 ` Jonathan Cameron
2013-02-02 16:13 ` Guenter Roeck
2013-02-02 16:13 ` Guenter Roeck
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=510CE70A.60002@kernel.org \
--to=jic23@kernel.org \
--cc=ch.naveen@samsung.com \
--cc=devicetree-discuss@lists.ozlabs.org \
--cc=dianders@chromium.org \
--cc=grant.likely@secretlab.ca \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=rob.herring@calxeda.com \
--cc=tomasz.figa@gmail.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.