All of lore.kernel.org
 help / color / mirror / Atom feed
* [lm-sensors] [PATCH v1 01/01] hwmon: (w83627ehf) Add fan debounce
@ 2011-03-07 18:55 Ian Dobson
  2011-03-07 19:24 ` [lm-sensors] [PATCH v1 01/01] hwmon: (w83627ehf) Add fan Guenter Roeck
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Ian Dobson @ 2011-03-07 18:55 UTC (permalink / raw)
  To: lm-sensors

Hello,

The nct6776f and nct6775f support debouncing the fan RPM signal, this can 
help improve the stability of th RPM signal for some fans (Arctic cooling 
fans for example).
This patch adds a module parameter fan_debounce, which when set to 1 enables 
debounce for all fans that the chip supports.
I've based this diff on the standalone w83627ehf driver from 7.3.2011 09:54, 
using diff -uN standardversion  myversion

Regards
Ian Dobson


--- w83627ehf.c.std	2011-03-04 17:01:18.630954100 +0100
+++ w83627ehf.c	2011-03-07 18:22:33.878852000 +0100
@@ -79,6 +79,10 @@
 module_param(force_id, ushort, 0);
 MODULE_PARM_DESC(force_id, "Override the detected device ID");

+static unsigned short fan_debounce;
+module_param(fan_debounce, ushort, 0);
+MODULE_PARM_DESC(fan_debounce, "Enable de-bouncing for fan RPM signal");
+
 #define DRVNAME "w83627ehf"

 /*
@@ -236,6 +240,7 @@
 static const u16 NCT6775_REG_FAN_STEP_OUTPUT[] = { 0x10b, 0x20b, 0x30b };
 static const u16 NCT6775_REG_FAN[] = { 0x630, 0x632, 0x634, 0x636, 0x638 };
 static const u16 NCT6776_REG_FAN_MIN[] = { 0x63a, 0x63c, 0x63e, 0x640, 
0x642};
+static const u8 NCT6776_REG_FAN_DEBOUNCE = 0xf0;

 static const u16 NCT6775_REG_TEMP[]
 	= { 0x27, 0x150, 0x250, 0x73, 0x75, 0x77, 0x62b, 0x62c, 0x62d };
@@ -2297,6 +2302,7 @@
 	static const char __initdata sio_name_NCT6776[] = "NCT6776F";

 	u16 val;
+	u8 tmp;
 	const char *sio_name;

 	superio_enter(sioaddr);
@@ -2369,6 +2375,22 @@
 	pr_info("Found %s chip at %#x\n", sio_name, *addr);
 	sio_data->sioreg = sioaddr;

+	if ( fan_debounce = 1 && (sio_data->kind = nct6775
+			|| sio_data->kind = nct6776 )) {
+		superio_enter(sio_data->sioreg);
+		superio_select(sio_data->sioreg, W83627EHF_LD_HWM);
+		tmp = superio_inb(sio_data->sioreg, NCT6776_REG_FAN_DEBOUNCE );
+		if ( sio_data->kind = nct6776 ) {
+			superio_outb(sio_data->sioreg, NCT6776_REG_FAN_DEBOUNCE,
+				0x3e | tmp );
+		} else {
+			superio_outb(sio_data->sioreg, NCT6776_REG_FAN_DEBOUNCE,
+				0x1e | tmp );
+		}
+		superio_exit(sio_data->sioreg);
+		pr_info("Enabling fan debounce for chip %s\n", sio_name);
+	}
+
 	return 0;
 }



_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-03-07 20:31 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-07 18:55 [lm-sensors] [PATCH v1 01/01] hwmon: (w83627ehf) Add fan debounce Ian Dobson
2011-03-07 19:24 ` [lm-sensors] [PATCH v1 01/01] hwmon: (w83627ehf) Add fan Guenter Roeck
2011-03-07 20:07 ` Ian Dobson
2011-03-07 20:31 ` Guenter Roeck

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.