Messages in this thread Patch in this message | | | Date | Thu, 25 Dec 2008 14:30:46 +0100 | From | "Krzysztof Kosiński" <> | Subject | Re: [PATCH] tc1100-wmi: fix state reporting |
| |
(Resend) 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 reporting 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). Fixes bug #12286.
Signed-off-by: Krzysztof Kosiński <tweenk.pl@gmail.com>
--- 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; | |