forked from Minki/linux
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>
This commit is contained in:
parent
1ea6dd3840
commit
475ef85512
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user