mirror of
https://github.com/lm-sensors/lm-sensors.git
synced 2026-11-03 13:38:25 +00:00
Patch dmi_scan.c in kernel instead of adding our own module.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@2424 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
1 parent
af741a7b4d
commit
2652853d44
2 files changed
+83
-3
No files matched your search
+83
-2
@@ -966,7 +966,7 @@ obj-$(CONFIG_I2C_HYDRA) += i2c-hydra.o
|
||||
obj-$(CONFIG_I2C_I801) += i2c-i801.o
|
||||
obj-$(CONFIG_I2C_I810) += i2c-i810.o
|
||||
obj-$(CONFIG_I2C_ISA) += i2c-isa.o
|
||||
obj-$(CONFIG_I2C_PIIX4) += i2c-piix4.o dmi_scan.o
|
||||
obj-$(CONFIG_I2C_PIIX4) += i2c-piix4.o
|
||||
obj-$(CONFIG_I2C_SIS5595) += i2c-sis5595.o
|
||||
obj-$(CONFIG_I2C_SIS630) += i2c-sis630.o
|
||||
obj-$(CONFIG_I2C_SIS645) += i2c-sis645.o
|
||||
@@ -975,7 +975,6 @@ obj-$(CONFIG_I2C_TSUNAMI) += i2c-tsunami.o
|
||||
obj-$(CONFIG_I2C_VIA) += i2c-via.o
|
||||
obj-$(CONFIG_I2C_VIAPRO) += i2c-viapro.o
|
||||
obj-$(CONFIG_I2C_VOODOO3) += i2c-voodoo3.o
|
||||
export-objs += dmi_scan.o
|
||||
EOF
|
||||
}
|
||||
print OUTPUT;
|
||||
@@ -1030,6 +1029,87 @@ EOF
|
||||
print_diff $package_root,$kernel_root,$kernel_file,$package_file;
|
||||
}
|
||||
|
||||
# Generate the diffs for dmi_scan.c and i386_ksyms.c
|
||||
# $_[0]: i2c package root (like /tmp/i2c)
|
||||
# $_[1]: Linux kernel tree (like /usr/src/linux)
|
||||
sub gen_dmi_scan
|
||||
{
|
||||
my ($package_root,$kernel_root) = @_;
|
||||
my $kernel_file = "arch/i386/kernel/dmi_scan.c";
|
||||
my $package_file = $temp;
|
||||
my $done = 0;
|
||||
|
||||
open INPUT,"$kernel_root/$kernel_file"
|
||||
or die "Can't open `$kernel_root/$kernel_file'";
|
||||
open OUTPUT,">$package_root/$package_file"
|
||||
or die "Can't open $package_root/$package_file";
|
||||
MAIN: while(<INPUT>) {
|
||||
if ($done == 0 && m/^\s*int is_sony_vaio_laptop;\s*$/) {
|
||||
print OUTPUT <<'EOF';
|
||||
int is_unsafe_smbus;
|
||||
EOF
|
||||
$done++;
|
||||
}
|
||||
if ($done == 1 && m/^\s*\* Check for a Sony Vaio system\s*$/) {
|
||||
print OUTPUT <<'EOF';
|
||||
* 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;
|
||||
}
|
||||
|
||||
/*
|
||||
EOF
|
||||
$done++;
|
||||
}
|
||||
if ($done == 2 && m/^\s*\{ sony_vaio_laptop, "Sony Vaio", \{ \/\* This is a Sony Vaio laptop \*\/\s*$/) {
|
||||
print OUTPUT <<'EOF';
|
||||
{ disable_smbus, "IBM", {
|
||||
MATCH(DMI_SYS_VENDOR, "IBM"),
|
||||
NO_MATCH, NO_MATCH, NO_MATCH
|
||||
} },
|
||||
EOF
|
||||
$done++;
|
||||
}
|
||||
print OUTPUT;
|
||||
}
|
||||
close INPUT;
|
||||
close OUTPUT;
|
||||
die "Automatic patch generation for `$kernel_file' failed.\n".
|
||||
"See our home page http://www.lm-sensors.nu for assistance!" if $done != 3;
|
||||
print_diff $package_root,$kernel_root,$kernel_file,$package_file;
|
||||
|
||||
$kernel_file = "arch/i386/kernel/i386_ksyms.c";
|
||||
$done = 0;
|
||||
|
||||
open INPUT,"$kernel_root/$kernel_file"
|
||||
or die "Can't open `$kernel_root/$kernel_file'";
|
||||
open OUTPUT,">$package_root/$package_file"
|
||||
or die "Can't open $package_root/$package_file";
|
||||
MAIN: while(<INPUT>) {
|
||||
if ($done == 0 && m/^\s*extern int is_sony_vaio_laptop;\s*$/) {
|
||||
print OUTPUT <<'EOF';
|
||||
extern int is_unsafe_smbus;
|
||||
EXPORT_SYMBOL(is_unsafe_smbus);
|
||||
|
||||
EOF
|
||||
$done++;
|
||||
}
|
||||
print OUTPUT;
|
||||
}
|
||||
close INPUT;
|
||||
close OUTPUT;
|
||||
die "Automatic patch generation for `$kernel_file' failed.\n".
|
||||
"See our home page http://www.lm-sensors.nu for assistance!" if $done != 1;
|
||||
print_diff $package_root,$kernel_root,$kernel_file,$package_file;
|
||||
}
|
||||
|
||||
|
||||
# Main function
|
||||
sub main
|
||||
@@ -1102,6 +1182,7 @@ sub main
|
||||
gen_drivers_i2c_Makefile $package_root, $kernel_root;
|
||||
gen_Documentation_Configure_help $package_root, $kernel_root;
|
||||
gen_MAINTAINERS $package_root, $kernel_root;
|
||||
gen_dmi_scan $package_root, $kernel_root;
|
||||
}
|
||||
|
||||
main;
|
||||
|
||||
Reference in new issue
Block a user