[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <298610bb0812241845h41f5f916p73f85c64367ed8c@mail.gmail.com>
Date: Thu, 25 Dec 2008 03:45:25 +0100
From: "Krzysztof Kosiński" <tweenk.pl@...il.com>
To: linux-kernel@...r.kernel.org
Cc: carlos@...angeworlds.co.uk
Subject: [PATCH] tc1100-wmi: fix state reporting
This small patch fixes the state reported when reading the files in
/sys/devices/platofrm/tc1100-wmi/*. The first change fixes always
returning 0 from the files in sysfs. The second one fixes jogdial
state reprting to match with the commands used to set it (e.g. now
after "echo 0 > /sys/devices/platofrm/tc1100-wmi/jogdial", "cat
/sys/devices/platofrm/tc1100-wmi/jogdial" will return 0 instead of 1).
Please CC any replies to me (I'm not subscribed).
Regards, Krzysztof Kosiński
--- linux-2.6.27/drivers/misc/tc1100-wmi.c 2008-10-10 00:13:53.000000000 +0200
+++ linux/drivers/misc/tc1100-wmi.c 2008-12-25 02:58:48.000000000 +0100
@@ -95,9 +95,8 @@
return -ENODEV;
obj = (union acpi_object *) result.pointer;
- if (obj && obj->type == ACPI_TYPE_BUFFER &&
- obj->buffer.length == sizeof(u32)) {
- tmp = *((u32 *) obj->buffer.pointer);
+ if (obj && obj->type == ACPI_TYPE_INTEGER) {
+ tmp = obj->integer.value;
} else {
tmp = 0;
}
@@ -110,7 +109,7 @@
*out = (tmp == 3) ? 1 : 0;
return 0;
case TC1100_INSTANCE_JOGDIAL:
- *out = (tmp == 1) ? 1 : 0;
+ *out = (tmp == 1) ? 0 : 1;
return 0;
default:
return -ENODEV;
Powered by blists - more mailing lists