Commit 9ecc1294 authored by Guenter Roeck's avatar Guenter Roeck
Browse files

hwmon: (spd5118) Add configuration option for auto-detection



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: default avatarThomas Weißschuh <linux@weissschuh.net>
Tested-by: default avatarArmin Wolf <W_Armin@gmx.de>
Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent 84d47735
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -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
+2 −2
Original line number Diff line number Diff line
@@ -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);