diff options
Diffstat (limited to 'drivers/hwmon/smsc47b397.c')
| -rw-r--r-- | drivers/hwmon/smsc47b397.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/hwmon/smsc47b397.c b/drivers/hwmon/smsc47b397.c index 943abbd95ab5..45266b30ce1d 100644 --- a/drivers/hwmon/smsc47b397.c +++ b/drivers/hwmon/smsc47b397.c | |||
| @@ -174,6 +174,8 @@ static SENSOR_DEVICE_ATTR(temp4_input, S_IRUGO, show_temp, NULL, 3); | |||
| 174 | REG: count of 90kHz pulses / revolution */ | 174 | REG: count of 90kHz pulses / revolution */ |
| 175 | static int fan_from_reg(u16 reg) | 175 | static int fan_from_reg(u16 reg) |
| 176 | { | 176 | { |
| 177 | if (reg == 0 || reg == 0xffff) | ||
| 178 | return 0; | ||
| 177 | return 90000 * 60 / reg; | 179 | return 90000 * 60 / reg; |
| 178 | } | 180 | } |
| 179 | 181 | ||
| @@ -333,7 +335,7 @@ static int __init smsc47b397_find(unsigned short *addr) | |||
| 333 | superio_enter(); | 335 | superio_enter(); |
| 334 | id = superio_inb(SUPERIO_REG_DEVID); | 336 | id = superio_inb(SUPERIO_REG_DEVID); |
| 335 | 337 | ||
| 336 | if ((id != 0x6f) && (id != 0x81)) { | 338 | if ((id != 0x6f) && (id != 0x81) && (id != 0x85)) { |
| 337 | superio_exit(); | 339 | superio_exit(); |
| 338 | return -ENODEV; | 340 | return -ENODEV; |
| 339 | } | 341 | } |
| @@ -346,7 +348,8 @@ static int __init smsc47b397_find(unsigned short *addr) | |||
| 346 | 348 | ||
| 347 | printk(KERN_INFO DRVNAME ": found SMSC %s " | 349 | printk(KERN_INFO DRVNAME ": found SMSC %s " |
| 348 | "(base address 0x%04x, revision %u)\n", | 350 | "(base address 0x%04x, revision %u)\n", |
| 349 | id == 0x81 ? "SCH5307-NS" : "LPC47B397-NC", *addr, rev); | 351 | id == 0x81 ? "SCH5307-NS" : id == 0x85 ? "SCH5317" : |
| 352 | "LPC47B397-NC", *addr, rev); | ||
| 350 | 353 | ||
| 351 | superio_exit(); | 354 | superio_exit(); |
| 352 | return 0; | 355 | return 0; |
