aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-02-06 18:25:48 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2012-02-06 18:25:48 -0500
commit105e5180936d69b1aee46ead8a5fc6c68f4d5f65 (patch)
tree22f18ca257da17233a757c63fb8e25bb76d6c11a /drivers
parent96e02d1586782eadf051fa3d6bc4132d2447ac2c (diff)
parent585c0fd8216e0c9f98e2434092af7ec0f999522d (diff)
Merge tag 'hwmon-fixes-for-3.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
One patch to fix fan detection on NCT6776F. * tag 'hwmon-fixes-for-3.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: hwmon: (w83627ehf) Fix number of fans for NCT6776F
Diffstat (limited to 'drivers')
-rw-r--r--drivers/hwmon/w83627ehf.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/drivers/hwmon/w83627ehf.c b/drivers/hwmon/w83627ehf.c
index 2dfae7d7cc5b..4d383e7e051d 100644
--- a/drivers/hwmon/w83627ehf.c
+++ b/drivers/hwmon/w83627ehf.c
@@ -1920,9 +1920,26 @@ w83627ehf_check_fan_inputs(const struct w83627ehf_sio_data *sio_data,
1920 fan4min = 0; 1920 fan4min = 0;
1921 fan5pin = 0; 1921 fan5pin = 0;
1922 } else if (sio_data->kind == nct6776) { 1922 } else if (sio_data->kind == nct6776) {
1923 fan3pin = !(superio_inb(sio_data->sioreg, 0x24) & 0x40); 1923 bool gpok = superio_inb(sio_data->sioreg, 0x27) & 0x80;
1924 fan4pin = !!(superio_inb(sio_data->sioreg, 0x1C) & 0x01); 1924
1925 fan5pin = !!(superio_inb(sio_data->sioreg, 0x1C) & 0x02); 1925 superio_select(sio_data->sioreg, W83627EHF_LD_HWM);
1926 regval = superio_inb(sio_data->sioreg, SIO_REG_ENABLE);
1927
1928 if (regval & 0x80)
1929 fan3pin = gpok;
1930 else
1931 fan3pin = !(superio_inb(sio_data->sioreg, 0x24) & 0x40);
1932
1933 if (regval & 0x40)
1934 fan4pin = gpok;
1935 else
1936 fan4pin = !!(superio_inb(sio_data->sioreg, 0x1C) & 0x01);
1937
1938 if (regval & 0x20)
1939 fan5pin = gpok;
1940 else
1941 fan5pin = !!(superio_inb(sio_data->sioreg, 0x1C) & 0x02);
1942
1926 fan4min = fan4pin; 1943 fan4min = fan4pin;
1927 } else if (sio_data->kind == w83667hg || sio_data->kind == w83667hg_b) { 1944 } else if (sio_data->kind == w83667hg || sio_data->kind == w83667hg_b) {
1928 fan3pin = 1; 1945 fan3pin = 1;