unsigned long dmi_broken;
int is_sony_vaio_laptop;
+int is_unsafe_smbus;
struct dmi_header
{
return 0;
}
+/*
+ * Don't access SMBus on IBM systems which get corrupted eeproms
+ */
+
+static __init int disable_smbus(struct dmi_blacklist *d)
+{
+ if (is_unsafe_smbus == 0) {
+ is_unsafe_smbus = 1;
+ printk(KERN_INFO "%s machine detected. Disabling SMBus accesses.\n", d->ident);
+ }
+ return 0;
+}
+
/*
* Simple "print if true" callback
*/
NO_MATCH, NO_MATCH, NO_MATCH
} },
+ /*
+ * SMBus / sensors settings
+ */
+
+ { disable_smbus, "IBM", {
+ MATCH(DMI_SYS_VENDOR, "IBM"),
+ NO_MATCH, NO_MATCH, NO_MATCH
+ } },
+
{ NULL, }
};