[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <f6c1e5d5-61ad-44ba-aa7c-231334d3e821@roeck-us.net>
Date: Tue, 27 Jan 2026 15:41:24 -0800
From: Guenter Roeck <linux@...ck-us.net>
To: TINSAE TADESSE <tinsaetadesse2015@...il.com>
Cc: Armin Wolf <W_Armin@....de>,
"linux-hwmon@...r.kernel.org" <linux-hwmon@...r.kernel.org>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/3] hwmon: spd5118: Do not fail resume on temporary I2C
errors
Hi,
On Tue, Jan 27, 2026 at 10:23:24PM +0300, TINSAE TADESSE wrote:
>
> Disabling CONFIG_SENSORS_SPD5118_DETECT completely avoids the issue on
> affected platforms,
> even without any code changes. This confirms that the failures are
> triggered specifically by automatic
> SPD5118 instantiation on systems where the i801 controller enforces
> SPD Write Disable.
Thanks for confirming. Can you try if the patch below fixes the problem ?
It is a wild shot, but it might be worth a try.
Thanks,
Guenter
---
>From b44c31c2c779a67827e3144b818cf21f5efacea1 Mon Sep 17 00:00:00 2001
From: Guenter Roeck <linux@...ck-us.net>
Date: Tue, 27 Jan 2026 15:32:32 -0800
Subject: [PATCH] hwmon: (spd5118) Explicitly enable temperature sensor in
probe function
Instantiating the driver does not make sense if the temperature sensor
is disabled, so enable it unconditionally in the probe function.
If that fails, write operations to the chip are likely disabled
by the I2C controller. Bail out with an eror message if that happens.
Signed-off-by: Guenter Roeck <linux@...ck-us.net>
---
drivers/hwmon/spd5118.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/hwmon/spd5118.c b/drivers/hwmon/spd5118.c
index 5da44571b6a0..3e0e780014f9 100644
--- a/drivers/hwmon/spd5118.c
+++ b/drivers/hwmon/spd5118.c
@@ -552,6 +552,11 @@ static int spd5118_common_probe(struct device *dev, struct regmap *regmap,
if (!spd5118_vendor_valid(bank, vendor))
return -ENODEV;
+ if (regmap_update_bits(regmap, SPD5118_REG_TEMP_CONFIG,
+ SPD5118_TS_DISABLE, 0) < 0)
+ return dev_err_probe(dev, -ENODEV,
+ "Failed to enable temperature sensor\n");
+
data->regmap = regmap;
mutex_init(&data->nvmem_lock);
dev_set_drvdata(dev, data);
--
2.45.2
Powered by blists - more mailing lists