mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/2] i2c: i801: Don't instantiate spd5118 under SPD Write Disable
@ 2025-04-24  3:35 Yo-Jung (Leo) Lin
  2025-04-24  3:35 ` [PATCH 1/2] i2c: smbus: pass write disabling bit to spd instantiating function Yo-Jung (Leo) Lin
  2025-04-24  3:35 ` [PATCH 2/2] i2c: i801: don't instantiate spd5118 if SPD Write Disable is set Yo-Jung (Leo) Lin
  0 siblings, 2 replies; 6+ messages in thread
From: Yo-Jung (Leo) Lin @ 2025-04-24  3:35 UTC (permalink / raw)
  To: Jean Delvare, Andi Shyti, Wolfram Sang
  Cc: Guenter Roeck, Chia-Lin Kao (AceLan),
	linux-i2c, linux-kernel, Yo-Jung Lin (Leo)

On some PC platforms, the BIOS may enable i801's SPD Write Disable bit and
forbid writes to certain SMBus addresses. For the i801 family those addresses
are 0x50 to 0x57[1], where the spd5118 sensors are usually probed.

The write-disabling bit will make sensor functions related to writes and
nvmem access unusable.

Also, the driver is unable to sync back values from regcache to the sensors
during resume, leading to resume failure. This has been observed on multiple
existing PC platforms from Dell and HP.

Furthermore, for the sensors from certain manufacturers, after a reset they
may need to select page value to 0 before sensor values can be read. Not
being able to write to the registers renders the temperature reading
unusable. See discussion in [2].

To address these issues, do not instantiate spd5118 if SPD Write Disable
bit is set.

[1] 18.1.16 HOSTC—Host Configuration Register (SMBus—D31:F3),
    Intel 8 Series/C220 Series Chipset Family Platform Controller Hub(PCH)

[2] https://lore.kernel.org/all/acf31929-5d13-4fc5-b370-ab7fc5062455@roeck-us.net/

Signed-off-by: Yo-Jung Lin (Leo) <leo.lin@canonical.com>
---
Yo-Jung (Leo) Lin (2):
      i2c: smbus: pass write disabling bit to spd instantiating function
      i2c: i801: don't instantiate spd5118 if SPD Write Disable is set

 drivers/i2c/busses/i2c-i801.c  | 6 ++++--
 drivers/i2c/busses/i2c-piix4.c | 2 +-
 drivers/i2c/i2c-smbus.c        | 7 ++++++-
 include/linux/i2c-smbus.h      | 4 ++--
 4 files changed, 13 insertions(+), 6 deletions(-)
---
base-commit: b425262c07a6a643ebeed91046e161e20b944164
change-id: 20250423-for-upstream-i801-spd5118-no-instantiate-3b52d489e7a6

Best regards,
-- 
Yo-Jung (Leo) Lin <leo.lin@canonical.com>


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2025-04-24 13:58 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-04-24  3:35 [PATCH 0/2] i2c: i801: Don't instantiate spd5118 under SPD Write Disable Yo-Jung (Leo) Lin
2025-04-24  3:35 ` [PATCH 1/2] i2c: smbus: pass write disabling bit to spd instantiating function Yo-Jung (Leo) Lin
2025-04-24 12:22   ` Guenter Roeck
2025-04-24 13:58   ` Andi Shyti
2025-04-24  3:35 ` [PATCH 2/2] i2c: i801: don't instantiate spd5118 if SPD Write Disable is set Yo-Jung (Leo) Lin
2025-04-24 12:21   ` Guenter Roeck

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®