lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5201FC55.5080304@free-electrons.com>
Date:	Wed, 07 Aug 2013 09:50:45 +0200
From:	Alexandre Belloni <alexandre.belloni@...e-electrons.com>
To:	Jonathan Cameron <jic23@...nel.org>
CC:	Hector Palacios <hector.palacios@...i.com>,
	Lars-Peter Clausen <lars@...afoo.de>,
	"linux-iio@...r.kernel.org" <linux-iio@...r.kernel.org>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	"devicetree-discuss@...ts.ozlabs.org" 
	<devicetree-discuss@...ts.ozlabs.org>,
	"fabio.estevam@...escale.com" <fabio.estevam@...escale.com>,
	"marex@...x.de" <marex@...x.de>
Subject: Re: [PATCH v3 4/5] iio: mxs-lradc: add scale_available file to channels

Hi Jonathan, Lars

I would really like to see that included in 3.12. While I agree there is
room for improvement, I don't think there are any comments that need an
immediate action before inclusion apart from the decision that has to be
taken for the device tree.

Can you confirm whether you'll take this series as is ?

Regards,

On 26/07/2013 18:13, Jonathan Cameron wrote:
>
> Alexandre Belloni <alexandre.belloni@...e-electrons.com> wrote:
>> On 23/07/2013 15:25, Hector Palacios wrote:
>>> Dear Lars,
>>>
>>> On 07/23/2013 10:46 AM, Lars-Peter Clausen wrote:
>>>> On 07/22/2013 04:04 PM, Hector Palacios wrote:
>>>> [...]
>>>>> +static ssize_t mxs_lradc_show_scale_available_ch(struct device
>> *dev,
>>>>> +        struct device_attribute *attr,
>>>>> +        char *buf,
>>>>> +        int ch)
>>>>> +{
>>>>> +    struct iio_dev *iio = dev_to_iio_dev(dev);
>>>>> +    struct mxs_lradc *lradc = iio_priv(iio);
>>>>> +    int i, len = 0;
>>>>> +
>>>>> +    for (i = 0; i < ARRAY_SIZE(lradc->scale_avail[ch]); i++)
>>>>> +        len += sprintf(buf + len, "%d.%09u ",
>>>>> +                   lradc->scale_avail[ch][i].integer,
>>>>> +                   lradc->scale_avail[ch][i].nano);
>>>>> +
>>>>> +    len += sprintf(buf + len, "\n");
>>>>> +
>>>>> +    return len;
>>>>> +}
>>>>> +
>>>>> +static ssize_t mxs_lradc_show_scale_available(struct device *dev,
>>>>> +        struct device_attribute *attr,
>>>>> +        char *buf)
>>>>> +{
>>>>> +    struct iio_dev_attr *iio_attr = to_iio_dev_attr(attr);
>>>>> +
>>>>> +    return mxs_lradc_show_scale_available_ch(dev, attr, buf,
>>>>> +                         iio_attr->address);
>>>>> +}
>>>>> +
>>>>> +#define SHOW_SCALE_AVAILABLE_ATTR(ch)                    \
>>>>> +static IIO_DEVICE_ATTR(in_voltage##ch##_scale_available, S_IRUGO, 
>>  \
>>>>> +               mxs_lradc_show_scale_available, NULL, ch)
>>>>> +
>>>>> +SHOW_SCALE_AVAILABLE_ATTR(0);
>>>>> +SHOW_SCALE_AVAILABLE_ATTR(1);
>>>>> +SHOW_SCALE_AVAILABLE_ATTR(2);
>>>>> +SHOW_SCALE_AVAILABLE_ATTR(3);
>>>>> +SHOW_SCALE_AVAILABLE_ATTR(4);
>>>>> +SHOW_SCALE_AVAILABLE_ATTR(5);
>>>>> +SHOW_SCALE_AVAILABLE_ATTR(6);
>>>>> +SHOW_SCALE_AVAILABLE_ATTR(7);
>>>>> +SHOW_SCALE_AVAILABLE_ATTR(8);
>>>>> +SHOW_SCALE_AVAILABLE_ATTR(9);
>>>>> +SHOW_SCALE_AVAILABLE_ATTR(10);
>>>>> +SHOW_SCALE_AVAILABLE_ATTR(11);
>>>>> +SHOW_SCALE_AVAILABLE_ATTR(12);
>>>>> +SHOW_SCALE_AVAILABLE_ATTR(13);
>>>>> +SHOW_SCALE_AVAILABLE_ATTR(14);
>>>>> +SHOW_SCALE_AVAILABLE_ATTR(15);
>>>>> +
>>>>> +static struct attribute *mxs_lradc_attributes[] = {
>>>>> +    &iio_dev_attr_in_voltage0_scale_available.dev_attr.attr,
>>>>> +    &iio_dev_attr_in_voltage1_scale_available.dev_attr.attr,
>>>>> +    &iio_dev_attr_in_voltage2_scale_available.dev_attr.attr,
>>>>> +    &iio_dev_attr_in_voltage3_scale_available.dev_attr.attr,
>>>>> +    &iio_dev_attr_in_voltage4_scale_available.dev_attr.attr,
>>>>> +    &iio_dev_attr_in_voltage5_scale_available.dev_attr.attr,
>>>>> +    &iio_dev_attr_in_voltage6_scale_available.dev_attr.attr,
>>>>> +    &iio_dev_attr_in_voltage7_scale_available.dev_attr.attr,
>>>>> +    &iio_dev_attr_in_voltage8_scale_available.dev_attr.attr,
>>>>> +    &iio_dev_attr_in_voltage9_scale_available.dev_attr.attr,
>>>>> +    &iio_dev_attr_in_voltage10_scale_available.dev_attr.attr,
>>>>> +    &iio_dev_attr_in_voltage11_scale_available.dev_attr.attr,
>>>>> +    &iio_dev_attr_in_voltage12_scale_available.dev_attr.attr,
>>>>> +    &iio_dev_attr_in_voltage13_scale_available.dev_attr.attr,
>>>>> +    &iio_dev_attr_in_voltage14_scale_available.dev_attr.attr,
>>>>> +    &iio_dev_attr_in_voltage15_scale_available.dev_attr.attr,
>>>>> +    NULL
>>>>> +};
>>>> This should really be using the iio_chan_spec_ext_info
>>>> infrastructure. Bonus
>>>> points for factoring out the common code used to calculate and
>>>> display the
>>>> scales.
>>> I perfectly understand. Sadly, I don't currently have the time and
>>> expertise to try to work this out the proper way. It already took
>> much
>>> longer than expected to have this driver toggle a divider flag.
>>>
>>> I'd appreciate if anyone wishes to complete this job.
>>> @Alexander, please feel free to submit your other temp patch without
>>> waiting for this one.
>>>
>> Maybe, we can get the patch set as is and do further clean up later.
>> Anyway, that driver is still in staging, right ?
>>
>> As said, I'm willing to propose something for the scale calculation.
> My thoughts exactly. Long term plans include generic handling of available attributes for the whole of IIO.
>
> It will take me a little while to catch up my backlog though!
>
> Jonathan
>
>
>


-- 
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ