hwmon/w83627ehf: Add error messages for two error cases
authorDavid Hubbard <david.c.hubbard@gmail.com>
Sun, 24 Jun 2007 09:17:09 +0000 (11:17 +0200)
committerMark M. Hoffman <mhoffman@lightlink.com>
Thu, 19 Jul 2007 18:22:17 +0000 (14:22 -0400)
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>
drivers/hwmon/w83627ehf.c

index 2157c3424de1e013cc620527f63c2a29dde4e6e0..e615b8378fc3313a7f4f79a8121ee6e12d07b2e5 100644 (file)
@@ -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);