Commit c92c8fc4 authored by Andrey Panin's avatar Andrey Panin Committed by Linus Torvalds

[PATCH] dmi_scan: port PIIX4 SMBUS driver to new DMI probing

This patch ports sonypi driver to new DMI probing API and removes
is_unsafe_smbus global variable.
Signed-off-by: default avatarAndrey Panin <pazke@donpac.ru>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 0afbfb45
...@@ -16,7 +16,6 @@ ...@@ -16,7 +16,6 @@
unsigned long dmi_broken; unsigned long dmi_broken;
EXPORT_SYMBOL(dmi_broken); EXPORT_SYMBOL(dmi_broken);
int is_unsafe_smbus;
int es7000_plat = 0; int es7000_plat = 0;
struct dmi_header struct dmi_header
...@@ -299,19 +298,6 @@ static int __init local_apic_kills_bios(struct dmi_blacklist *d) ...@@ -299,19 +298,6 @@ static int __init local_apic_kills_bios(struct dmi_blacklist *d)
return 0; 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;
}
/* /*
* Check for clue free BIOS implementations who use * Check for clue free BIOS implementations who use
* the following QA technique * the following QA technique
...@@ -761,15 +747,6 @@ static __initdata struct dmi_blacklist dmi_blacklist[]={ ...@@ -761,15 +747,6 @@ static __initdata struct dmi_blacklist dmi_blacklist[]={
NO_MATCH, NO_MATCH, NO_MATCH NO_MATCH, NO_MATCH, NO_MATCH
} }, } },
/*
* SMBus / sensors settings
*/
{ disable_smbus, "IBM", {
MATCH(DMI_SYS_VENDOR, "IBM"),
NO_MATCH, NO_MATCH, NO_MATCH
} },
/* /*
* Some Athlon laptops have really fucked PST tables. * Some Athlon laptops have really fucked PST tables.
* A BIOS update is all that can save them. * A BIOS update is all that can save them.
...@@ -1047,8 +1024,6 @@ void __init dmi_scan_machine(void) ...@@ -1047,8 +1024,6 @@ void __init dmi_scan_machine(void)
printk(KERN_INFO "DMI not present.\n"); printk(KERN_INFO "DMI not present.\n");
} }
EXPORT_SYMBOL(is_unsafe_smbus);
/** /**
* dmi_check_system - check system DMI data * dmi_check_system - check system DMI data
......
...@@ -40,6 +40,7 @@ ...@@ -40,6 +40,7 @@
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/apm_bios.h> #include <linux/apm_bios.h>
#include <linux/dmi.h>
#include <asm/io.h> #include <asm/io.h>
...@@ -114,18 +115,13 @@ static int piix4_transaction(void); ...@@ -114,18 +115,13 @@ static int piix4_transaction(void);
static unsigned short piix4_smba = 0; static unsigned short piix4_smba = 0;
static struct i2c_adapter piix4_adapter; static struct i2c_adapter piix4_adapter;
/* static struct dmi_system_id __devinitdata piix4_dmi_table[] = {
* Get DMI information. {
*/ .ident = "IBM",
static int __devinit ibm_dmi_probe(void) .matches = { DMI_MATCH(DMI_SYS_VENDOR, "IBM"), },
{ },
#ifdef CONFIG_X86 { },
extern int is_unsafe_smbus; };
return is_unsafe_smbus;
#else
return 0;
#endif
}
static int __devinit piix4_setup(struct pci_dev *PIIX4_dev, static int __devinit piix4_setup(struct pci_dev *PIIX4_dev,
const struct pci_device_id *id) const struct pci_device_id *id)
...@@ -138,7 +134,9 @@ static int __devinit piix4_setup(struct pci_dev *PIIX4_dev, ...@@ -138,7 +134,9 @@ static int __devinit piix4_setup(struct pci_dev *PIIX4_dev,
dev_info(&PIIX4_dev->dev, "Found %s device\n", pci_name(PIIX4_dev)); dev_info(&PIIX4_dev->dev, "Found %s device\n", pci_name(PIIX4_dev));
if(ibm_dmi_probe() && PIIX4_dev->vendor == PCI_VENDOR_ID_INTEL) { /* 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 Laptop detected; this module "
"may corrupt your serial eeprom! Refusing to load " "may corrupt your serial eeprom! Refusing to load "
"module!\n"); "module!\n");
......
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