On Mon, 2008-06-23 at 05:58 +0800, Rene Herman wrote:On 22-06-08 20:25, Rene Herman wrote:Hi, Rene and Hans,
Another way to solve it _could_ be to just make up a device link ifThis also works for me and, if correct, is ofcourse better than the
something generic is available so that sensors doesn't trip over it
in the first place but I don't know if that's a good option. You
might.
CONFIG option. Wants a comment from the thermal_zone side (for which
Zhang Rui seems the correct CC?) though.
Thank you for your efforts on this issue and sorry for the late
response, I did not check my email during the whole weekend.
About the hwmon ABI, after the device symbol link is created, are there
any other ABIs required in the device node?
If no, this patch seems to work, although it might break if the first
registered ACPI thermal zone device is unregistered, which ONLY happens
theoretically.
From: Rene Herman <rene.herman@xxxxxxxxx>
Date: Sun, 22 Jun 2008 23:45:04 +0200
Subject: [PATCH] thermal: link the virtual/thermal/thermal_zoneN device for hwmon
2.6.26-rc gained a hwmon interface to the ACPI Thermal Zone
driver which unfortunately breaks lm-sensors 2 userspace and
renders all other (subsequent) hwmon sensors inoperable also.
Many systems, current slackware systems among them, are still
using lm-sensors 2 and would be affected.
The problem is userspace tripping over an absent "device"
link in the ACPI Thermal Zone sysfs /sys/class/hwmon/hwmonN
directory. This just adds the virtual "thermal/thermal_zoneN"
device as a device backlink which satisfies lm-sensors again.
Tested and looks fairly obvious, but this wants comment from
a thermal_zone person, to confirm/deny that this is a proper
device pointer to use here for one.
Signed-off-by: Rene Herman <rene.herman@xxxxxxxxx>
CC: Hans de Goede <j.w.r.degoede@xxxxxx>
CC: Zhang Rui <rui.zhang@xxxxxxxxx>
CC: Mark M. Hoffman <mhoffman@xxxxxxxxxxxxx>
CC: Jean Delvare <khali@xxxxxxxxxxxx>
CC: linux-acpi@xxxxxxxxxxxxxxx
CC: lm-sensors@xxxxxxxxxxxxxx
CC; linux-kernel@xxxxxxxxxxxxxxx
---
drivers/thermal/thermal_sys.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/thermal/thermal_sys.c b/drivers/thermal/thermal_sys.c
index 6098787..c21e03c 100644
--- a/drivers/thermal/thermal_sys.c
+++ b/drivers/thermal/thermal_sys.c
@@ -357,7 +357,7 @@ thermal_add_hwmon_sysfs(struct thermal_zone_device *tz)
INIT_LIST_HEAD(&hwmon->tz_list);
strlcpy(hwmon->type, tz->type, THERMAL_NAME_LENGTH);
- hwmon->device = hwmon_device_register(NULL);
+ hwmon->device = hwmon_device_register(&tz->device);
if (IS_ERR(hwmon->device)) {
result = PTR_ERR(hwmon->device);
goto free_mem;