]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iio: adc: max1363: Reorder mode_list[] entries
authorFabio Estevam <festevam@denx.de>
Fri, 16 May 2025 17:39:00 +0000 (14:39 -0300)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Mon, 9 Jun 2025 06:45:19 +0000 (07:45 +0100)
The IIO core issues warnings when a scan mask is a subset of a previous
entry in the available_scan_masks array.

On a board using a MAX11601, the following warning is observed:

max1363 1-0064: available_scan_mask 7 subset of 6. Never used

This occurs because the entries in the max11607_mode_list[] array are not
ordered correctly. To fix this, reorder the entries so that no scan mask is
a subset of an earlier one.

While at it, reorder the mode_list[] arrays for other supported chips as
well, to prevent similar warnings on different variants.

Note fixes tag dropped as these were introduced over many commits a long
time back and the side effect until recently was a reduction in sampling
rate due to reading too many channels when only a few were desired.
Now we have a sanity check that reports this error but that is not
where the issue was introduced.

Cc: stable@vger.kernel.org
Signed-off-by: Fabio Estevam <festevam@denx.de>
Acked-by: Matti Vaittinen <mazziesaccount@gmail.com>
Link: https://patch.msgid.link/20250516173900.677821-2-festevam@gmail.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/max1363.c

index bc44b4604ef4bd94a4b5c56ed8c61e6e7be53ec5..9dd547e62b6c143fc33925e36332ac5c322a9c40 100644 (file)
@@ -532,23 +532,23 @@ static const struct iio_chan_spec max1363_channels[] =
 /* Applies to max1236, max1237 */
 static const enum max1363_modes max1236_mode_list[] = {
        _s0, _s1, _s2, _s3,
-       s0to1, s0to2, s0to3,
+       s0to1, s0to2, s2to3, s0to3,
        d0m1, d2m3, d1m0, d3m2,
        d0m1to2m3, d1m0to3m2,
-       s2to3,
 };
 
 /* Applies to max1238, max1239 */
 static const enum max1363_modes max1238_mode_list[] = {
        _s0, _s1, _s2, _s3, _s4, _s5, _s6, _s7, _s8, _s9, _s10, _s11,
        s0to1, s0to2, s0to3, s0to4, s0to5, s0to6,
+       s6to7, s6to8, s6to9, s6to10, s6to11,
        s0to7, s0to8, s0to9, s0to10, s0to11,
        d0m1, d2m3, d4m5, d6m7, d8m9, d10m11,
        d1m0, d3m2, d5m4, d7m6, d9m8, d11m10,
-       d0m1to2m3, d0m1to4m5, d0m1to6m7, d0m1to8m9, d0m1to10m11,
-       d1m0to3m2, d1m0to5m4, d1m0to7m6, d1m0to9m8, d1m0to11m10,
-       s6to7, s6to8, s6to9, s6to10, s6to11,
-       d6m7to8m9, d6m7to10m11, d7m6to9m8, d7m6to11m10,
+       d0m1to2m3, d0m1to4m5, d0m1to6m7, d6m7to8m9,
+       d0m1to8m9, d6m7to10m11, d0m1to10m11, d1m0to3m2,
+       d1m0to5m4, d1m0to7m6, d7m6to9m8, d1m0to9m8,
+       d7m6to11m10, d1m0to11m10,
 };
 
 #define MAX1363_12X_CHANS(bits) {                              \
@@ -584,16 +584,15 @@ static const struct iio_chan_spec max1238_channels[] = MAX1363_12X_CHANS(12);
 
 static const enum max1363_modes max11607_mode_list[] = {
        _s0, _s1, _s2, _s3,
-       s0to1, s0to2, s0to3,
-       s2to3,
+       s0to1, s0to2, s2to3,
+       s0to3,
        d0m1, d2m3, d1m0, d3m2,
        d0m1to2m3, d1m0to3m2,
 };
 
 static const enum max1363_modes max11608_mode_list[] = {
        _s0, _s1, _s2, _s3, _s4, _s5, _s6, _s7,
-       s0to1, s0to2, s0to3, s0to4, s0to5, s0to6, s0to7,
-       s6to7,
+       s0to1, s0to2, s0to3, s0to4, s0to5, s0to6, s6to7, s0to7,
        d0m1, d2m3, d4m5, d6m7,
        d1m0, d3m2, d5m4, d7m6,
        d0m1to2m3, d0m1to4m5, d0m1to6m7,