Commit 13e3a512 authored by Jean Delvare's avatar Jean Delvare Committed by Wolfram Sang

i2c: smbus: Support up to 8 SPD EEPROMs

I originally restricted i2c_register_spd() to only support systems
with up to 4 memory slots, so that we can experiment with it on
a limited numbers of systems. It's been more than 3 years and it
seems to work just fine, so the time has come to lift this arbitrary
limitation.

The maximum number of memory slots which can be connected to a single
I2C segment is 8, so support that many SPD EEPROMs. Any system with
more than 8 memory slots would have either multiple SMBus channels
or SMBus multiplexing, so it would need dedicated care. We'll get to
that later as needed.
Signed-off-by: default avatarJean Delvare <jdelvare@suse.de>
Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
parent 92a85b7c
...@@ -308,8 +308,8 @@ EXPORT_SYMBOL_GPL(i2c_free_slave_host_notify_device); ...@@ -308,8 +308,8 @@ EXPORT_SYMBOL_GPL(i2c_free_slave_host_notify_device);
* target systems are the same. * target systems are the same.
* Restrictions to automatic SPD instantiation: * Restrictions to automatic SPD instantiation:
* - Only works if all filled slots have the same memory type * - Only works if all filled slots have the same memory type
* - Only works for DDR2, DDR3 and DDR4 for now * - Only works for DDR, DDR2, DDR3 and DDR4 for now
* - Only works on systems with 1 to 4 memory slots * - Only works on systems with 1 to 8 memory slots
*/ */
#if IS_ENABLED(CONFIG_DMI) #if IS_ENABLED(CONFIG_DMI)
void i2c_register_spd(struct i2c_adapter *adap) void i2c_register_spd(struct i2c_adapter *adap)
...@@ -354,9 +354,9 @@ void i2c_register_spd(struct i2c_adapter *adap) ...@@ -354,9 +354,9 @@ void i2c_register_spd(struct i2c_adapter *adap)
dev_info(&adap->dev, "%d/%d memory slots populated (from DMI)\n", dev_info(&adap->dev, "%d/%d memory slots populated (from DMI)\n",
dimm_count, slot_count); dimm_count, slot_count);
if (slot_count > 4) { if (slot_count > 8) {
dev_warn(&adap->dev, dev_warn(&adap->dev,
"Systems with more than 4 memory slots not supported yet, not instantiating SPD\n"); "Systems with more than 8 memory slots not supported yet, not instantiating SPD\n");
return; return;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment