diff options
author | David Hubbard <david.c.hubbard@gmail.com> | 2007-06-24 11:17:09 +0200 |
---|---|---|
committer | Mark M. Hoffman <mhoffman@lightlink.com> | 2007-07-19 14:22:17 -0400 |
commit | 475ef85512900dcb87435e13656c1f5e724de379 (patch) | |
tree | 21a831861be0ae4253e75baa74b741d73a5797e5 /drivers/hwmon/w83627ehf.c | |
parent | 1ea6dd3840e5a22924d78299fee018c82e425d80 (diff) | |
download | blackbird-op-linux-475ef85512900dcb87435e13656c1f5e724de379.tar.gz blackbird-op-linux-475ef85512900dcb87435e13656c1f5e724de379.zip |
hwmon/w83627ehf: Add error messages for two error cases
If the Super-I/O device is disabled, it is likely the BIOS has a good
reason for leaving it disabled, so give a warning when enabling it --
it's not likely to be wired correctly or be able to give good data.
Also, if the Super-I/O device is configured with an address of 0, the
driver refuses to initialize it.
Signed-off-by: David Hubbard <david.c.hubbard@gmail.com>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
Diffstat (limited to 'drivers/hwmon/w83627ehf.c')
-rw-r--r-- | drivers/hwmon/w83627ehf.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/hwmon/w83627ehf.c b/drivers/hwmon/w83627ehf.c index 2157c3424de1..e615b8378fc3 100644 --- a/drivers/hwmon/w83627ehf.c +++ b/drivers/hwmon/w83627ehf.c @@ -1387,14 +1387,19 @@ static int __init w83627ehf_find(int sioaddr, unsigned short *addr, | superio_inb(sioaddr, SIO_REG_ADDR + 1); *addr = val & IOREGION_ALIGNMENT; if (*addr == 0) { + printk(KERN_ERR DRVNAME ": Refusing to enable a Super-I/O " + "device with a base I/O port 0.\n"); superio_exit(sioaddr); return -ENODEV; } /* Activate logical device if needed */ val = superio_inb(sioaddr, SIO_REG_ENABLE); - if (!(val & 0x01)) + if (!(val & 0x01)) { + printk(KERN_WARNING DRVNAME ": Forcibly enabling Super-I/O. " + "Sensor is probably unusable.\n"); superio_outb(sioaddr, SIO_REG_ENABLE, val | 0x01); + } superio_exit(sioaddr); pr_info(DRVNAME ": Found %s chip at %#x\n", sio_name, *addr); |