Re: [PATCH 2/4] iio: dpot-dac: DAC driver based on a digital potentiometer

From: Peter Rosin
Date: Thu Oct 20 2016 - 23:23:25 EST


On 2016-10-20 16:08, Peter Meerwald-Stadler wrote:
>>>> + u32 max_ohms;
>>>> +};
>>>> +
>>>> +static const struct iio_chan_spec dpot_dac_iio_channel = {
>>>> + .type = IIO_VOLTAGE,
>>>> + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW)
>>>> + | BIT(IIO_CHAN_INFO_SCALE),
>>>> + .output = 1,
>>>> +};
>>>> +
>>>> +static int dpot_dac_read_raw(struct iio_dev *indio_dev,
>>>> + struct iio_chan_spec const *chan,
>>>> + int *val, int *val2, long mask)
>>>> +{
>>>> + struct dpot_dac *dac = iio_priv(indio_dev);
>>>> + int ret;
>>>> + unsigned long long tmp;
>>>
>>> s64 (which is used to cast below)
>>
>> I assume that what you really want is to get rid of the cast, and
>> that you aren't really bothered if tmp is ull or s32, right? Given
>> that assumption, I'm just dropping the cast instead. The LL specifier
>> on the constant should promote *val anyway.
>
> what I meant to pick upon was mixing
> s64 with unsigned long long with LL in the code that follows
>
> anything simpler and more consistent would be good

Right, I should however note that I copied the pattern from the
industrialio-core.c:iio_format_value function. So, in my defense
I was consistent with that...

Cheers,
Peter