]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
hwmon: (spd5118) Add configuration option for auto-detection
authorGuenter Roeck <linux@roeck-us.net>
Mon, 3 Jun 2024 05:31:52 +0000 (22:31 -0700)
committerGuenter Roeck <linux@roeck-us.net>
Mon, 10 Jun 2024 16:13:41 +0000 (09:13 -0700)
With SPD5118 chip detection for the most part handled by the i2c-smbus
core using DMI information, the spd5118 driver no longer needs to
auto-detect spd5118 compliant chips.

Auto-detection by the driver is still needed on systems with no DMI support
or on systems with more than eight DIMMs and can not be removed entirely.
However, it affects boot time and introduces the risk of mis-identifying
chips. Add configuration option to be able to disable it on systems where
chip detection is handled outside the driver.

Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Thomas Weißschuh <linux@weissschuh.net>
Tested-by: Armin Wolf <W_Armin@gmx.de>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/Kconfig
drivers/hwmon/spd5118.c

index 7a84e7637b51a3692900a0c2d9bd9eb18a16e5af..d5eced417fc341d5eaa96477eaa0e1d0d5bd7df1 100644 (file)
@@ -2193,6 +2193,25 @@ config SENSORS_SPD5118
          This driver can also be built as a module. If so, the module
          will be called spd5118.
 
+config SENSORS_SPD5118_DETECT
+       bool "Enable detect function"
+       depends on SENSORS_SPD5118
+       default (!DMI || !X86)
+       help
+         If enabled, the driver auto-detects if a chip in the SPD address
+         range is compliant to the SPD51888 standard and auto-instantiates
+         if that is the case. If disabled, SPD5118 compliant devices have
+         to be instantiated by other means. On X86 systems with DMI support
+         this will typically be done from DMI DDR detection code in the
+         I2C SMBus subsystem. Devicetree based systems will instantiate
+         attached devices if the DIMMs are listed in the devicetree file.
+
+         Disabling the detect function will speed up boot time and reduce
+         the risk of mis-detecting SPD5118 compliant devices. However, it
+         may result in missed DIMMs under some circumstances.
+
+         If unsure, say Y.
+
 config SENSORS_TC74
        tristate "Microchip TC74"
        depends on I2C
index de6cf07f3007d73227769957e9762848d32860a6..ac94a67793605480e5afbcf66ccf0601be9b0b01 100644 (file)
@@ -646,8 +646,8 @@ static struct i2c_driver spd5118_driver = {
        },
        .probe          = spd5118_probe,
        .id_table       = spd5118_id,
-       .detect         = spd5118_detect,
-       .address_list   = normal_i2c,
+       .detect         = IS_ENABLED(CONFIG_SENSORS_SPD5118_DETECT) ? spd5118_detect : NULL,
+       .address_list   = IS_ENABLED(CONFIG_SENSORS_SPD5118_DETECT) ? normal_i2c : NULL,
 };
 
 module_i2c_driver(spd5118_driver);