i2c: smbus: remove i801 assumptions from SPD probing
authorThomas Weißschuh <linux@weissschuh.net>
Tue, 9 Jul 2024 17:35:35 +0000 (19:35 +0200)
committerAndi Shyti <andi.shyti@kernel.org>
Sat, 20 Jul 2024 01:07:55 +0000 (03:07 +0200)
The check and warning are very specific to the SPD usage of the i801
driver. That was fine as long as i801 was the only caller of
i2c_register_spd(). Now that piix4 will be added as another user of that
function, the check and warning are not accurate anymore.
Instead of introducing a more complicated calling protocol only to print
a warning, drop the warning.
Even in cases where not all slots can be probed,
then at least probe the 8 slots that can be.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Reviewed-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
drivers/i2c/i2c-smbus.c

index 1cb137b..7e4203d 100644 (file)
@@ -352,18 +352,11 @@ void i2c_register_spd(struct i2c_adapter *adap)
                return;
 
        /*
-        * If we're a child adapter on a muxed segment, then limit slots to 8,
-        * as this is the max number of SPD EEPROMs that can be addressed per bus.
+        * The max number of SPD EEPROMs that can be addressed per bus is 8.
+        * If more slots are present either muxed or multiple busses are
+        * necessary or the additional slots are ignored.
         */
-       if (i2c_parent_is_i2c_adapter(adap)) {
-               slot_count = 8;
-       } else {
-               if (slot_count > 8) {
-                       dev_warn(&adap->dev,
-                                "More than 8 memory slots on a single bus, contact i801 maintainer to add missing mux config\n");
-                       return;
-               }
-       }
+       slot_count = min(slot_count, 8);
 
        /*
         * Memory types could be found at section 7.18.2 (Memory Device — Type), table 78