All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hector Palacios <hector.palacios@digi.com>
To: Jonathan Cameron <jic23@kernel.org>
Cc: Marek Vasut <marex@denx.de>,
	"linux-iio@vger.kernel.org" <linux-iio@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"devicetree-discuss@lists.ozlabs.org"
	<devicetree-discuss@lists.ozlabs.org>,
	"alexandre.belloni@free-electrons.com"
	<alexandre.belloni@free-electrons.com>,
	"lars@metafoo.de" <lars@metafoo.de>,
	"fabio.estevam@freescale.com" <fabio.estevam@freescale.com>
Subject: Re: [PATCH v2 5/5] iio: mxs-lradc: add write_raw function to modify scale
Date: Mon, 22 Jul 2013 10:01:36 +0200	[thread overview]
Message-ID: <51ECE6E0.1030509@digi.com> (raw)
In-Reply-To: <51E9A240.3000108@kernel.org>

Hi Jonathan,

On 07/19/2013 10:32 PM, Jonathan Cameron wrote:
>>>> @@ -323,6 +326,54 @@ static int mxs_lradc_read_raw(struct iio_dev *iio_dev,
>>>>        return ret;
>>>>    }
>>>>
>>>> +static int mxs_lradc_write_raw(struct iio_dev *iio_dev,
>>>> +                   const struct iio_chan_spec *chan,
>>>> +                   int val, int val2, long m)
>>>> +{
>>>> +    struct mxs_lradc *lradc = iio_priv(iio_dev);
>>>> +    int ret;
>>>> +
>>>> +    ret = mutex_trylock(&lradc->lock);
>>>> +    if (!ret)
>>>> +        return -EBUSY;
>>>> +
>>>> +    switch (m) {
>>>> +    case IIO_CHAN_INFO_SCALE:
>>>> +        ret = -EINVAL;
>>>> +        if (val == lradc->scale_avail[chan->channel][0][0] &&
>>>> +            val2 == lradc->scale_avail[chan->channel][0][1]) {
>>>> +            /* [0] -> divider by two disabled */
>>>
>>> This comment is confusing, you use [0] in different dimensions of the array. So
>>> is the stuff below.
>>>
>>> Still, how does this even work, can you show me and example how to set the
>>> divider from userland ? Sorry, I'm a bit confused with this 3D-business here,
>>> even if the comment in previous patch made it a bit clearer. Actually you can
>>> use some #define to specify if you're accessing div/2 or div/1 portion of the
>>> array to make it more readable.
>>>
>>> Like ... scale_avail[chan->channel][LRADC_DIV_BY_2][LRADC_DECIMAL_PART] ...
>>> would by nice.
>>
>> Agreed.
> Could even make the int + nano part a structure then you could have
> scale_avail[chan->channel][LRADC_DIV_BY_2].integer / .nano
>
> might not be worth the hassel though for the slight gain in readability.
>
> I'm happy either way.

I prefer the struct approach, it removes one dimension to the array and I find it cleaner.

Best regards,
--
Hector Palacios

WARNING: multiple messages have this Message-ID (diff)
From: Hector Palacios <hector.palacios-i7dp0qKlBMg@public.gmane.org>
To: Jonathan Cameron <jic23-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Cc: Marek Vasut <marex-ynQEQJNshbs@public.gmane.org>,
	"linux-iio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-iio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org"
	<devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org>,
	"alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org"
	<alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
	"lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org"
	<lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>,
	"fabio.estevam-KZfg59tc24xl57MIdRCFDg@public.gmane.org"
	<fabio.estevam-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
Subject: Re: [PATCH v2 5/5] iio: mxs-lradc: add write_raw function to modify scale
Date: Mon, 22 Jul 2013 10:01:36 +0200	[thread overview]
Message-ID: <51ECE6E0.1030509@digi.com> (raw)
In-Reply-To: <51E9A240.3000108-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>

Hi Jonathan,

On 07/19/2013 10:32 PM, Jonathan Cameron wrote:
>>>> @@ -323,6 +326,54 @@ static int mxs_lradc_read_raw(struct iio_dev *iio_dev,
>>>>        return ret;
>>>>    }
>>>>
>>>> +static int mxs_lradc_write_raw(struct iio_dev *iio_dev,
>>>> +                   const struct iio_chan_spec *chan,
>>>> +                   int val, int val2, long m)
>>>> +{
>>>> +    struct mxs_lradc *lradc = iio_priv(iio_dev);
>>>> +    int ret;
>>>> +
>>>> +    ret = mutex_trylock(&lradc->lock);
>>>> +    if (!ret)
>>>> +        return -EBUSY;
>>>> +
>>>> +    switch (m) {
>>>> +    case IIO_CHAN_INFO_SCALE:
>>>> +        ret = -EINVAL;
>>>> +        if (val == lradc->scale_avail[chan->channel][0][0] &&
>>>> +            val2 == lradc->scale_avail[chan->channel][0][1]) {
>>>> +            /* [0] -> divider by two disabled */
>>>
>>> This comment is confusing, you use [0] in different dimensions of the array. So
>>> is the stuff below.
>>>
>>> Still, how does this even work, can you show me and example how to set the
>>> divider from userland ? Sorry, I'm a bit confused with this 3D-business here,
>>> even if the comment in previous patch made it a bit clearer. Actually you can
>>> use some #define to specify if you're accessing div/2 or div/1 portion of the
>>> array to make it more readable.
>>>
>>> Like ... scale_avail[chan->channel][LRADC_DIV_BY_2][LRADC_DECIMAL_PART] ...
>>> would by nice.
>>
>> Agreed.
> Could even make the int + nano part a structure then you could have
> scale_avail[chan->channel][LRADC_DIV_BY_2].integer / .nano
>
> might not be worth the hassel though for the slight gain in readability.
>
> I'm happy either way.

I prefer the struct approach, it removes one dimension to the array and I find it cleaner.

Best regards,
--
Hector Palacios

  reply	other threads:[~2013-07-22  8:01 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-19  9:13 [PATCH v2 0/5] iio: mxs-lradc: add support to optional divider_by_two Hector Palacios
2013-07-19  9:13 ` Hector Palacios
2013-07-19  9:13 ` [PATCH v2 1/5] iio: mxs-lradc: change the realbits to 12 Hector Palacios
2013-07-19  9:13   ` Hector Palacios
2013-07-19 13:56   ` Marek Vasut
2013-07-19 13:56     ` Marek Vasut
2013-07-19 17:09   ` Alexandre Belloni
2013-07-19 17:09     ` Alexandre Belloni
2013-07-19  9:13 ` [PATCH v2 2/5] ARM: dts: add reference voltage property for MXS LRADC Hector Palacios
2013-07-19  9:13   ` Hector Palacios
2013-07-19 13:58   ` Marek Vasut
2013-07-19 13:58     ` Marek Vasut
2013-07-19 17:10   ` Alexandre Belloni
2013-07-19 17:10     ` Alexandre Belloni
2013-07-19  9:13 ` [PATCH v2 3/5] iio: mxs-lradc: add scale attribute to channels Hector Palacios
2013-07-19  9:13   ` Hector Palacios
2013-07-19 14:30   ` Marek Vasut
2013-07-19 14:30     ` Marek Vasut
2013-07-19 15:44     ` Hector Palacios
2013-07-19 15:44       ` Hector Palacios
2013-07-19 16:14       ` Marek Vasut
2013-07-19 16:14         ` Marek Vasut
2013-07-22  7:22         ` Hector Palacios
2013-07-22  7:22           ` Hector Palacios
2013-07-22  7:42           ` Marek Vasut
2013-07-22  7:42             ` Marek Vasut
2013-07-22  7:46             ` Hector Palacios
2013-07-22  7:46               ` Hector Palacios
2013-07-22  7:58               ` Marek Vasut
2013-07-19 17:06   ` Alexandre Belloni
2013-07-19 17:06     ` Alexandre Belloni
2013-07-22  7:26     ` Hector Palacios
2013-07-22  7:26       ` Hector Palacios
2013-07-19  9:13 ` [PATCH v2 4/5] iio: mxs-lradc: add scale_available file " Hector Palacios
2013-07-19  9:13   ` Hector Palacios
2013-07-19 17:20   ` Alexandre Belloni
2013-07-19 17:20     ` Alexandre Belloni
2013-07-19  9:13 ` [PATCH v2 5/5] iio: mxs-lradc: add write_raw function to modify scale Hector Palacios
2013-07-19  9:13   ` Hector Palacios
2013-07-19 14:39   ` Marek Vasut
2013-07-19 14:39     ` Marek Vasut
2013-07-19 15:31     ` Hector Palacios
2013-07-19 15:31       ` Hector Palacios
2013-07-19 16:17       ` Marek Vasut
2013-07-19 16:17         ` Marek Vasut
2013-07-19 16:22         ` Hector Palacios
2013-07-19 20:23           ` Jonathan Cameron
2013-07-19 20:23             ` Jonathan Cameron
2013-07-20 19:00             ` Marek Vasut
2013-07-20 19:00               ` Marek Vasut
2013-07-19 20:32       ` Jonathan Cameron
2013-07-19 20:32         ` Jonathan Cameron
2013-07-22  8:01         ` Hector Palacios [this message]
2013-07-22  8:01           ` Hector Palacios
2013-07-19 17:21   ` Alexandre Belloni
2013-07-19 17:21     ` Alexandre Belloni

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=51ECE6E0.1030509@digi.com \
    --to=hector.palacios@digi.com \
    --cc=alexandre.belloni@free-electrons.com \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=fabio.estevam@freescale.com \
    --cc=jic23@kernel.org \
    --cc=lars@metafoo.de \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marex@denx.de \
    /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.