On Tue, Oct 1, 2024 at 9:41 PM Jonathan Cameron <jic23@xxxxxxxxxx> wrote: > > On Tue, 1 Oct 2024 08:42:23 -0500 > David Lechner <dlechner@xxxxxxxxxxxx> wrote: > > > On 10/1/24 3:26 AM, Alexandru Ardelean wrote: > > > On Thu, Sep 19, 2024 at 4:05 PM Alexandru Ardelean > > > <aardelean@xxxxxxxxxxxx> 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 > > > > > > > > >