aboutsummaryrefslogtreecommitdiffstats
path: root/plugin_i2c_sensors.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugin_i2c_sensors.c')
-rw-r--r--plugin_i2c_sensors.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/plugin_i2c_sensors.c b/plugin_i2c_sensors.c
index ce70e35..397e52c 100644
--- a/plugin_i2c_sensors.c
+++ b/plugin_i2c_sensors.c
@@ -1,4 +1,4 @@
-/* $Id: plugin_i2c_sensors.c 1082 2010-01-17 14:40:03Z volker $
+/* $Id: plugin_i2c_sensors.c 1150 2011-07-27 02:53:04Z michael $
* $URL: https://ssl.bulix.org/svn/lcd4linux/trunk/plugin_i2c_sensors.c $
*
* I2C sensors plugin
@@ -223,6 +223,8 @@ static void my_i2c_sensors_path(const char *method)
int done;
if (!strcmp(method, "sysfs")) {
+ base = "/sys/class/hwmon/";
+ } else if (!strcmp(method, "sysfs-old")) {
base = "/sys/bus/i2c/devices/";
} else if (!strcmp(method, "procfs")) {
base = "/proc/sys/dev/sensors/";
@@ -259,6 +261,16 @@ static void my_i2c_sensors_path(const char *method)
done = 1;
break;
}
+ if (!strcmp(file->d_name, "device")) {
+ char fname[PATH_MAX];
+ snprintf(fname, PATH_MAX, "%sdevice/temp1_input", dname);
+ if (access(fname, R_OK) == 0) {
+ path = realloc(path, strlen(dname) + 7);
+ sprintf(path, "%sdevice/", dname);
+ done = 1;
+ break;
+ }
+ }
}
closedir(fd2);
if (done)
@@ -281,6 +293,8 @@ static int configure_i2c_sensors(void)
/* debug("No path to i2c sensors found in the conf, calling my_i2c_sensors_path()"); */
my_i2c_sensors_path("sysfs");
if (!path)
+ my_i2c_sensors_path("sysfs-old");
+ if (!path)
my_i2c_sensors_path("procfs");
if (!path) {