[lm-sensors] Asus atk0110 driver

Luca Tettamanti kronos.it at gmail.com
Mon Jun 30 21:58:45 CEST 2008


Il Mon, Jun 23, 2008 at 11:06:01AM +0200, Jean Delvare ha scritto: 
> Hi Gabriel,
> 
> On Sun, 22 Jun 2008 18:15:51 +0200, Gabriel C wrote:
> > I've tested the driver with linux-next on my P5E-VM DO motherboard.
> > 
> > The driver seems to work , the values / data in  /sys/class/hwmon/hwmon0/device/*
> > seems to be the same like what the BIOS reports.
> > 
> > However how do I get sensors to display the data from atk driver ?
> > I guess I have to patch lm-sensors ?
> 
> For lm-sensors 2.10.x, yes, you'd need to patch libsensors and sensors
> and virtually every monitoring application out there.
> 
> But the preferred solution is to just upgrade to lm-sensors 3.0.x,
> which automatically detects the device features, so every new driver is
> supported right away.

Not really, the hwmon device is linked directly to the ACPI node in the
sysfs hierarchy (via subsystem link): lm-sensors just ignores it.

Patch is simple enough though:

---
 Makefile      |    6 +++---
 lib/access.c  |    2 ++
 lib/data.c    |    5 +++++
 lib/sensors.h |    1 +
 lib/sysfs.c   |    5 +++++
 5 files changed, 16 insertions(+), 3 deletions(-)

Index: lib/access.c
===================================================================
--- lib/access.c	(revision 5296)
+++ lib/access.c	(working copy)
@@ -349,6 +349,8 @@
 		return "SPI adapter";
 	case SENSORS_BUS_TYPE_VIRTUAL:
 		return "Virtual device";
+	case SENSORS_BUS_TYPE_ACPI:
+		return "ACPI device";
 	}
 
 	/* bus types with several instances */
Index: lib/sensors.h
===================================================================
--- lib/sensors.h	(revision 5296)
+++ lib/sensors.h	(working copy)
@@ -42,6 +42,7 @@
 #define SENSORS_BUS_TYPE_PCI		2
 #define SENSORS_BUS_TYPE_SPI		3
 #define SENSORS_BUS_TYPE_VIRTUAL	4
+#define SENSORS_BUS_TYPE_ACPI		5
 #define SENSORS_BUS_NR_ANY		(-1)
 #define SENSORS_BUS_NR_IGNORE		(-2)
 
Index: lib/sysfs.c
===================================================================
--- lib/sysfs.c	(revision 5296)
+++ lib/sysfs.c	(working copy)
@@ -579,6 +579,11 @@
 			entry.chip.addr = 0;
 		entry.chip.bus.type = SENSORS_BUS_TYPE_ISA;
 		entry.chip.bus.nr = 0;
+	} else
+	if ((!subsys || !strcmp(subsys, "acpi")) &&
+	    sscanf(dev_name, "%*[a-zA-Z0-9_]:%d", &entry.chip.addr) == 1) {
+		entry.chip.bus.type = SENSORS_BUS_TYPE_ACPI;
+		entry.chip.bus.nr = 0;
 	} else {
 		/* Ignore unknown device */
 		err = 0;
Index: lib/data.c
===================================================================
--- lib/data.c	(revision 5296)
+++ lib/data.c	(working copy)
@@ -111,6 +111,8 @@
 		res->bus.type = SENSORS_BUS_TYPE_SPI;
 	else if (!strncmp(name, "virtual", dash - name))
 		res->bus.type = SENSORS_BUS_TYPE_VIRTUAL;
+	else if (!strncmp(name, "acpi", dash - name))
+		res->bus.type = SENSORS_BUS_TYPE_ACPI;
 	else
 		goto ERROR;
 	name = dash + 1;
@@ -174,6 +176,9 @@
 	case SENSORS_BUS_TYPE_VIRTUAL:
 		return snprintf(str, size, "%s-virtual-%x", chip->prefix,
 				chip->addr);
+	case SENSORS_BUS_TYPE_ACPI:
+		return snprintf(str, size, "%s-acpi-%x", chip->prefix,
+				chip->addr);
 	}
 
 	return -SENSORS_ERR_CHIP_NAME;

With the patch applied sensors is able to display all the data:

atk0110-acpi-0
Adapter: ACPI device
Vcore Voltage:      +1.12 V  (min =  +0.85 V, max =  +1.60 V)
 +3.3 Voltage:      +3.31 V  (min =  +2.97 V, max =  +3.63 V)
 +5 Voltage:        +5.12 V  (min =  +4.50 V, max =  +5.50 V)
 +12 Voltage:      +12.41 V  (min = +10.20 V, max = +13.80 V)
CPU FAN Speed:     2860 RPM  (min =  600 RPM)
CHASSIS1 FAN Speed:   0 RPM  (min =  800 RPM)
CHASSIS2 FAN Speed:   0 RPM  (min =  800 RPM)
POWER FAN Speed:      0 RPM  (min =  800 RPM)
CPU Temperature:    +48.5°C  (high = +60.0°C, crit = +95.0°C)
MB Temperature:     +42.0°C  (high = +45.0°C, crit = +95.0°C)

> > Luca what do you think about creating  a proper patch for the driver too and send it over to 
> > Greg to be included in his linux-staging tree ? I think that way it will get more testing.

Will do ;)

Luca
-- 
Sono un mirabile incrocio tra Tarzan e Giacomo Leopardi.
In me convivono tutte le doti intelluttuali di Tarzan e
tutta la prestanza fisica di Giacomo Leopardi.
A. Borsani




More information about the lm-sensors mailing list