Re: [PATCH] iio: adc: max1363: sign-extend bipolar differential channel reads
Jonathan Cameron <[email protected]>
| Newsgroups | gmane.linux.kernel.iio,gmane.linux.kernel |
|---|---|
| Message-ID | <20260817020154.343c5080@jic23-huawei> |
On Mon, 10 Aug 2026 23:50:53 +0700 Nguyễn Công <[email protected]> wrote: > On Mon, Aug 10, 2026 at 1:45 PM Andy Shevchenko > <[email protected]> wrote: > > > > On Mon, Aug 10, 2026 at 9:42 AM Cong Nguyen <[email protected]> wrote: > > > > > > The MAX1363 differential channels are bipolar (scan_type.sign = 's') and > > > the device returns those samples in two's complement. However > > > max1363_read_single_chan() masks the raw value to the ADC resolution and > > > stores it as-is, without sign extension. A negative differential reading > > > is therefore reported to userspace as a large positive value (for a 12-bit > > > part, -1 reads back as 4095). > > > > Try to make it more compact (remove unneeded or duplicative details, > > do not blindly rely on AI). > > Done in v2 - trimmed both paragraphs down to the bug, one example, and > the fix. > > > > > > These channels expose only IIO_CHAN_INFO_RAW (no offset), so the raw sysfs > > > value is expected to be the signed result. Sign-extend the masked value > > > from the resolution bit for differential channels before returning it. > > > Single-ended channels are unipolar (sign = 'u') and are left unchanged. > > > > Same here. > > > > > Fixes: 168c9d95a940 ("iio:adc:max1363 move from staging.") > > > > This is a wrong reference in case the driver existed before (and that > > is suggested by the commit description). > > > > -- > > With Best Regards, > > Andy Shevchenko > > Right, the bug predates the move. The driver was added in 2010 by > d1325cf45077 ("Staging: IIO: max1363 ADC driver"), which already reads > differential channels with an unsigned mask, so v2 uses that as the > Fixes: tag. Trivial thing to watch out for - don't put anything a thread that smells like a tag. b4 tends to scrape them and if I'm not paying attention (or like in this case my git hooks catch it) we end up with bonus tags. > Thanks for the review. > Cong