From khali@linux-fr.org Tue Apr 25 04:37:23 2006 Date: Tue, 25 Apr 2006 13:37:25 +0200 From: Jean Delvare To: Greg KH Subject: I2C: i2c-piix4: Document the IBM problem more clearly Message-Id: <20060425133725.ef4eadd2.khali@linux-fr.org> Content-Disposition: inline; filename=i2c-piix4-improve-ibm-error-message.patch Properly document on which systems the i2c-piix4 SMBus driver will refuse to load. Hopefully this will make it clearer for users, which were often wondering why their destop or server systems were detected as laptops. Closes bug #6429. Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman --- Documentation/i2c/busses/i2c-piix4 | 14 ++++++++++++++ drivers/i2c/busses/i2c-piix4.c | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) --- gregkh-2.6.orig/Documentation/i2c/busses/i2c-piix4 +++ gregkh-2.6/Documentation/i2c/busses/i2c-piix4 @@ -82,3 +82,17 @@ the SMI mode. Please note that you don't need to do that in all cases, just when the SMBus is not working properly. + + +Hardware-specific issues +------------------------ + +This driver will refuse to load on IBM systems with an Intel PIIX4 SMBus. +Some of these machines have an RFID EEPROM (24RF08) connected to the SMBus, +which can easily get corrupted due to a state machine bug. These are mostly +Thinkpad laptops, but desktop systems may also be affected. We have no list +of all affected systems, so the only safe solution was to prevent access to +the SMBus on all IBM systems (detected using DMI data.) + +For additional information, read: +http://www2.lm-sensors.nu/~lm78/cvs/lm_sensors2/README.thinkpad --- gregkh-2.6.orig/drivers/i2c/busses/i2c-piix4.c +++ gregkh-2.6/drivers/i2c/busses/i2c-piix4.c @@ -130,7 +130,7 @@ static int __devinit piix4_setup(struct /* Don't access SMBus on IBM systems which get corrupted eeproms */ if (dmi_check_system(piix4_dmi_table) && PIIX4_dev->vendor == PCI_VENDOR_ID_INTEL) { - dev_err(&PIIX4_dev->dev, "IBM Laptop detected; this module " + dev_err(&PIIX4_dev->dev, "IBM system detected; this module " "may corrupt your serial eeprom! Refusing to load " "module!\n"); return -EPERM;