[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CA+GgBR_HTwNT6WKdweuuTZ_t+ZmMXrMkYNK+b3pp4f2MmTWzGw@mail.gmail.com>
Date: Wed, 2 Oct 2024 09:12:09 +0300
From: Alexandru Ardelean <aardelean@...libre.com>
To: Jonathan Cameron <jic23@...nel.org>
Cc: David Lechner <dlechner@...libre.com>, linux-iio@...r.kernel.org,
linux-kernel@...r.kernel.org, devicetree@...r.kernel.org, krzk+dt@...nel.org,
robh@...nel.org, lars@...afoo.de, michael.hennerich@...log.com,
gstols@...libre.com
Subject: Re: [PATCH v7 8/8] iio: adc: ad7606: add support for AD7606C-{16,18} parts
On Tue, Oct 1, 2024 at 9:41 PM Jonathan Cameron <jic23@...nel.org> wrote:
>
> On Tue, 1 Oct 2024 08:42:23 -0500
> David Lechner <dlechner@...libre.com> wrote:
>
> > On 10/1/24 3:26 AM, Alexandru Ardelean wrote:
> > > On Thu, Sep 19, 2024 at 4:05 PM Alexandru Ardelean
> > > <aardelean@...libre.com> wrote:
> > >>
> >
> > ...
> >
> > >> @@ -153,7 +349,19 @@ static int ad7606_scan_direct(struct iio_dev *indio_dev, unsigned int ch,
> > >> if (ret)
> > >> goto error_ret;
> > >>
> > >> - *val = sign_extend32(st->data[ch], 15);
> > >> + chan = &indio_dev->channels[ch + 1];
> > >> + if (chan->scan_type.sign == 'u') {
> > >> + if (storagebits > 16)
> > >> + *val = st->data.buf32[ch];
> > >> + else
> > >> + *val = st->data.buf16[ch];
> > >> + return 0;
> > >
> > > Arrggh...
> > > I messed up here.
> > > Guillaume found a bug here, where this should be "goto error_ret" or
> > > do an "if () {} else {}"
> > > How should we do it here?
> if / else. Goto an error label when it's not an error would be horrible!
> > >
> > > Do we send a fix-patch or send a new series?
> > >
> >
> > Since this patch is already applied, just follow up with another
> > patch with a Fixes: tag.
>
> I sometimes tweak these sort of things if I haven't pushed out
> as togreg yet (or they are really bad!) but in this case I'm not
> 100% sure what the comment is, so I'll just apply a fix on top.
>
> So David is entirely correct in general but by luck of timing
> this time I'll tweak it.
>
> Please check the result in iio.git/testing
> I'll hold off pushing that out as togreg until at least end of
> tomorrow. One more day o
The "return 0" needs to be removed in the driver.
if (chan->scan_type.sign == 'u') {
if (storagebits > 16)
*val = st->data.buf32[ch];
else
*val = st->data.buf16[ch];
- return 0;
} else {
if (storagebits > 16)
*val = sign_extend32(st->data.buf32[ch], 17);
else
*val = sign_extend32(st->data.buf16[ch], 15);
}
>
> Jonathan
>
>
> >
> >
> >
>
Powered by blists - more mailing lists