mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-02 17:26:42 +09:00
hwmon: (w83627ehf) Fix number of fans for NCT6776F
commit 585c0fd821 upstream.
NCT6776F can select fan input pins for fans 3 to 5 with a secondary set of
chip register bits. Check that second set of bits in addition to the first set
to detect if fans 3..5 are monitored.
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Acked-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
d378b2d044
commit
eb521fbb33
@@ -2104,9 +2104,29 @@ static int __devinit w83627ehf_probe(struct platform_device *pdev)
|
||||
fan4min = 0;
|
||||
fan5pin = 0;
|
||||
} else if (sio_data->kind == nct6776) {
|
||||
fan3pin = !(superio_inb(sio_data->sioreg, 0x24) & 0x40);
|
||||
fan4pin = !!(superio_inb(sio_data->sioreg, 0x1C) & 0x01);
|
||||
fan5pin = !!(superio_inb(sio_data->sioreg, 0x1C) & 0x02);
|
||||
bool gpok = superio_inb(sio_data->sioreg, 0x27) & 0x80;
|
||||
u8 regval;
|
||||
|
||||
superio_select(sio_data->sioreg, W83627EHF_LD_HWM);
|
||||
regval = superio_inb(sio_data->sioreg, SIO_REG_ENABLE);
|
||||
|
||||
if (regval & 0x80)
|
||||
fan3pin = gpok;
|
||||
else
|
||||
fan3pin = !(superio_inb(sio_data->sioreg, 0x24) & 0x40);
|
||||
|
||||
if (regval & 0x40)
|
||||
fan4pin = gpok;
|
||||
else
|
||||
fan4pin = !!(superio_inb(sio_data->sioreg, 0x1C)
|
||||
& 0x01);
|
||||
|
||||
if (regval & 0x20)
|
||||
fan5pin = gpok;
|
||||
else
|
||||
fan5pin = !!(superio_inb(sio_data->sioreg, 0x1C)
|
||||
& 0x02);
|
||||
|
||||
fan4min = fan4pin;
|
||||
} else if (sio_data->kind == w83667hg || sio_data->kind == w83667hg_b) {
|
||||
fan3pin = 1;
|
||||
|
||||
Reference in New Issue
Block a user