From: David Lechner Date: Mon, 10 Mar 2025 20:43:08 +0000 (-0500) Subject: iio: adc: ad4030: explain rearranging raw sample data X-Git-Tag: v6.16-rc1~30^2~4^2~254 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9415c8b5b9b7ba927d98f80022a2890e8639e9e4;p=thirdparty%2Fkernel%2Fstable.git iio: adc: ad4030: explain rearranging raw sample data Add a comment explaining why the raw sample data is rearranged in the in the ad4030_conversion() function. It is not so obvious from the code why this is done. Signed-off-by: David Lechner Reviewed-by: Nuno Sá Link: https://patch.msgid.link/20250310-iio-adc-ad4030-check-scan-type-err-v1-5-589e4ebd9711@baylibre.com Signed-off-by: Jonathan Cameron --- diff --git a/drivers/iio/adc/ad4030.c b/drivers/iio/adc/ad4030.c index 54ad74b96c9f2..636f9f33e66af 100644 --- a/drivers/iio/adc/ad4030.c +++ b/drivers/iio/adc/ad4030.c @@ -646,6 +646,12 @@ static int ad4030_conversion(struct iio_dev *indio_dev) &st->rx_data.dual.diff[0], &st->rx_data.dual.diff[1]); + /* + * If no common mode voltage channel is enabled, we can use the raw + * data as is. Otherwise, we need to rearrange the data a bit to match + * the natural alignment of the IIO buffer. + */ + if (st->mode != AD4030_OUT_DATA_MD_16_DIFF_8_COM && st->mode != AD4030_OUT_DATA_MD_24_DIFF_8_COM) return 0;