]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.2-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 7 Feb 2012 21:54:26 +0000 (13:54 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 7 Feb 2012 21:54:26 +0000 (13:54 -0800)
added patches:
hwmon-w83627ehf-fix-number-of-fans-for-nct6776f.patch

queue-3.2/hwmon-w83627ehf-fix-number-of-fans-for-nct6776f.patch [new file with mode: 0644]
queue-3.2/series

diff --git a/queue-3.2/hwmon-w83627ehf-fix-number-of-fans-for-nct6776f.patch b/queue-3.2/hwmon-w83627ehf-fix-number-of-fans-for-nct6776f.patch
new file mode 100644 (file)
index 0000000..1f151ee
--- /dev/null
@@ -0,0 +1,53 @@
+From 585c0fd8216e0c9f98e2434092af7ec0f999522d Mon Sep 17 00:00:00 2001
+From: Guenter Roeck <linux@roeck-us.net>
+Date: Fri, 27 Jan 2012 05:43:59 -0800
+Subject: hwmon: (w83627ehf) Fix number of fans for NCT6776F
+
+From: Guenter Roeck <linux@roeck-us.net>
+
+commit 585c0fd8216e0c9f98e2434092af7ec0f999522d 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>
+
+---
+ drivers/hwmon/w83627ehf.c |   23 ++++++++++++++++++++---
+ 1 file changed, 20 insertions(+), 3 deletions(-)
+
+--- a/drivers/hwmon/w83627ehf.c
++++ b/drivers/hwmon/w83627ehf.c
+@@ -1920,9 +1920,26 @@ w83627ehf_check_fan_inputs(const struct
+               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;
++
++              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;
index 5198f05b6cbf069b17884305308a30758689730b..e94461b49f3720145850cd3b795a1b34acf6a3e7 100644 (file)
@@ -45,3 +45,4 @@ drm-i915-handle-3rd-pipe.patch
 drm-i915-convert-force_wake_get-to-func-pointer-in-the-gpu-reset-code.patch
 drm-i915-protect-force_wake_-get-put-with-the-gt_lock.patch
 ecryptfs-infinite-loop-due-to-overflow-in-ecryptfs_write.patch
+hwmon-w83627ehf-fix-number-of-fans-for-nct6776f.patch