diff options
author | Jean Delvare <khali@linux-fr.org> | 2010-07-09 10:22:51 -0400 |
---|---|---|
committer | Jean Delvare <khali@linux-fr.org> | 2010-07-09 10:22:51 -0400 |
commit | faabd47f7e3a36574abcdff0b3506abb092bbe24 (patch) | |
tree | dfe23ab344d56a0cdc2c222a87cb6dc0f802bcf0 /drivers/i2c | |
parent | 3f4f09b4be35d38d6e2bf22c989443e65e70fc4c (diff) |
hwmon: Fix autoloading of fschmd on recent Fujitsu machines
Fujitsu slightly changed the DMI strings in their recent machines,
(for example the D2778) and this breaks the automatic loading of the
needed fschmd driver. Being more tolerant on string comparison fixes
the issue.
This closes bug #15634:
https://bugzilla.kernel.org/show_bug.cgi?id=15634
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Tested-by: Sergey Spiridonov <sena@hurd.homeunix.org>
Cc: Hans de Goede <hdegoede@redhat.com>
Diffstat (limited to 'drivers/i2c')
-rw-r--r-- | drivers/i2c/busses/i2c-i801.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c index f4b21f2bb8ed..c60081169cc3 100644 --- a/drivers/i2c/busses/i2c-i801.c +++ b/drivers/i2c/busses/i2c-i801.c | |||
@@ -655,7 +655,7 @@ static void __devinit dmi_check_onboard_device(u8 type, const char *name, | |||
655 | /* & ~0x80, ignore enabled/disabled bit */ | 655 | /* & ~0x80, ignore enabled/disabled bit */ |
656 | if ((type & ~0x80) != dmi_devices[i].type) | 656 | if ((type & ~0x80) != dmi_devices[i].type) |
657 | continue; | 657 | continue; |
658 | if (strcmp(name, dmi_devices[i].name)) | 658 | if (strcasecmp(name, dmi_devices[i].name)) |
659 | continue; | 659 | continue; |
660 | 660 | ||
661 | memset(&info, 0, sizeof(struct i2c_board_info)); | 661 | memset(&info, 0, sizeof(struct i2c_board_info)); |
@@ -704,9 +704,6 @@ static int __devinit i801_probe(struct pci_dev *dev, | |||
704 | { | 704 | { |
705 | unsigned char temp; | 705 | unsigned char temp; |
706 | int err, i; | 706 | int err, i; |
707 | #if defined CONFIG_SENSORS_FSCHMD || defined CONFIG_SENSORS_FSCHMD_MODULE | ||
708 | const char *vendor; | ||
709 | #endif | ||
710 | 707 | ||
711 | I801_dev = dev; | 708 | I801_dev = dev; |
712 | i801_features = 0; | 709 | i801_features = 0; |
@@ -808,8 +805,7 @@ static int __devinit i801_probe(struct pci_dev *dev, | |||
808 | } | 805 | } |
809 | #endif | 806 | #endif |
810 | #if defined CONFIG_SENSORS_FSCHMD || defined CONFIG_SENSORS_FSCHMD_MODULE | 807 | #if defined CONFIG_SENSORS_FSCHMD || defined CONFIG_SENSORS_FSCHMD_MODULE |
811 | vendor = dmi_get_system_info(DMI_BOARD_VENDOR); | 808 | if (dmi_name_in_vendors("FUJITSU")) |
812 | if (vendor && !strcmp(vendor, "FUJITSU SIEMENS")) | ||
813 | dmi_walk(dmi_check_onboard_devices, &i801_adapter); | 809 | dmi_walk(dmi_check_onboard_devices, &i801_adapter); |
814 | #endif | 810 | #endif |
815 | 811 | ||