linux-i2c.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Guenter Roeck <linux@roeck-us.net>
To: linux-hwmon@vger.kernel.org
Cc: linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org,
	devicetree@vger.kernel.org,
	"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
	"Wolfram Sang" <wsa+renesas@sang-engineering.com>,
	"René Rebe" <rene@exactcode.de>,
	"Thomas Weißschuh" <linux@weissschuh.net>,
	"Armin Wolf" <W_Armin@gmx.de>,
	"Stephen Horvath" <s.horvath@outlook.com.au>,
	"Guenter Roeck" <linux@roeck-us.net>
Subject: [PATCH v4a 6/6] hwmon: (spd5118) Add configuration option for auto-detection
Date: Tue,  4 Jun 2024 19:19:07 -0700	[thread overview]
Message-ID: <20240605021907.4125716-1-linux@roeck-us.net> (raw)
In-Reply-To: <20240604040237.1064024-7-linux@roeck-us.net>

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>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
Sent as v4a to avoid resending the entire series.

v4a:
    Do not auto-select SENSORS_SPD5118_DETECT if DMI is disabled
    Modify help text of SENSORS_SPD5118_DETECT
    Default SENSORS_SPD5118_DETECT to y if (!DMI || !X86)
     
v4: New patch

 drivers/hwmon/Kconfig   | 19 +++++++++++++++++++
 drivers/hwmon/spd5118.c |  4 +++-
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
index 7a84e7637b51..d5eced417fc3 100644
--- a/drivers/hwmon/Kconfig
+++ b/drivers/hwmon/Kconfig
@@ -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
diff --git a/drivers/hwmon/spd5118.c b/drivers/hwmon/spd5118.c
index 5cb5e52c0a38..19d203283a21 100644
--- a/drivers/hwmon/spd5118.c
+++ b/drivers/hwmon/spd5118.c
@@ -313,7 +313,7 @@ static bool spd5118_vendor_valid(u8 bank, u8 id)
 }
 
 /* Return 0 if detection is successful, -ENODEV otherwise */
-static int spd5118_detect(struct i2c_client *client, struct i2c_board_info *info)
+static int __maybe_unused spd5118_detect(struct i2c_client *client, struct i2c_board_info *info)
 {
 	struct i2c_adapter *adapter = client->adapter;
 	int regval;
@@ -647,7 +647,9 @@ static struct i2c_driver spd5118_driver = {
 	},
 	.probe		= spd5118_probe,
 	.id_table	= spd5118_id,
+#ifdef CONFIG_SENSORS_SPD5118_DETECT
 	.detect		= spd5118_detect,
+#endif
 	.address_list	= normal_i2c,
 };
 
-- 
2.39.2


  parent reply	other threads:[~2024-06-05  2:19 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-04  4:02 [PATCH v4 0/6] hwmon: Add support for SPD5118 compliant chips Guenter Roeck
2024-06-04  4:02 ` [PATCH v4 1/6] dt-bindings: trivial-devices: Add jedec,spd5118 Guenter Roeck
2024-06-04  4:02 ` [PATCH v4 2/6] hwmon: Add support for SPD5118 compliant temperature sensors Guenter Roeck
2024-06-04  8:48   ` Stephen Horvath
2024-06-04 14:31     ` Guenter Roeck
2024-06-07 15:55   ` Armin Wolf
2024-06-04  4:02 ` [PATCH v4 3/6] hwmon: (spd5118) Add suspend/resume support Guenter Roeck
2024-06-04  8:45   ` Stephen Horvath
2024-06-04 14:31     ` Guenter Roeck
2024-06-07 15:57   ` Armin Wolf
2024-06-04  4:02 ` [PATCH v4 4/6] hwmon: (spd5118) Add support for reading SPD data Guenter Roeck
2024-06-04 11:58   ` Armin Wolf
2024-06-04 14:30     ` Guenter Roeck
2024-06-07 15:59       ` Armin Wolf
2024-06-04  4:02 ` [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs Guenter Roeck
2024-06-04  7:32   ` Wolfram Sang
2024-06-05 12:21   ` Paul Menzel
2024-06-05 13:56     ` Guenter Roeck
2024-06-17 14:42       ` Paul Menzel
2024-06-17 15:49         ` Guenter Roeck
2024-06-18 10:25           ` Paul Menzel
2024-06-18 13:32             ` Guenter Roeck
2024-06-18 13:51               ` Paul Menzel
2024-06-18 14:23                 ` Guenter Roeck
2024-06-18 14:59                   ` Paul Menzel
2024-06-18 15:10                     ` Guenter Roeck
2024-06-18 15:25                       ` Paul Menzel
2024-06-18 15:43                         ` Guenter Roeck
2024-06-18 18:16                         ` Guenter Roeck
2024-06-18 18:59                           ` Paul Menzel
2024-06-18 19:31                             ` Guenter Roeck
2024-06-18 15:12                     ` Guenter Roeck
2024-06-18 15:27                       ` Paul Menzel
2024-06-07 16:06   ` Armin Wolf
2024-06-07 18:00     ` Wolfram Sang
2024-06-10 13:52       ` Guenter Roeck
2024-06-10 14:52         ` Wolfram Sang
2024-06-10 15:55           ` Guenter Roeck
2024-06-12 16:19             ` Wolfram Sang
2024-06-24 20:06               ` Heiner Kallweit
2024-06-24 20:30                 ` Guenter Roeck
2024-06-04  4:02 ` [PATCH v4 6/6] hwmon: (spd5118) Add configuration option for auto-detection Guenter Roeck
2024-06-04  4:37   ` Thomas Weißschuh
2024-06-04 14:04     ` Guenter Roeck
2024-06-04  7:44   ` Wolfram Sang
2024-06-04 14:04     ` Guenter Roeck
2024-06-05  2:19   ` Guenter Roeck [this message]
2024-06-05  9:22     ` [PATCH v4a " Thomas Weißschuh
2024-06-05 14:04       ` Guenter Roeck
2024-06-07 16:08     ` Armin Wolf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240605021907.4125716-1-linux@roeck-us.net \
    --to=linux@roeck-us.net \
    --cc=W_Armin@gmx.de \
    --cc=devicetree@vger.kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-hwmon@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@weissschuh.net \
    --cc=rene@exactcode.de \
    --cc=s.horvath@outlook.com.au \
    --cc=wsa+renesas@sang-engineering.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).