Re: [PATCH] tc1100-wmi: fix state reporting

From: Krzysztof KosiÅski
Date: Thu Dec 25 2008 - 08:31:00 EST


(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@xxxxxxxxx>

--- 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;
N‹§²æìr¸›yúèšØb²X¬¶ÇvØ^–)Þ{.nÇ+‰·¥Š{±‘êçzX§¶›¡Ü}©ž²ÆzÚ&j:+v‰¨¾«‘êçzZ+€Ê+zf£¢·hšˆ§~†­†Ûiÿûàz¹®w¥¢¸?™¨è­Ú&¢)ßf”ù^jÇy§m…á@A«a¶Úÿ 0¶ìh®å’i