This small patch fixes the state reported when reading the files in/sys/devices/platofrm/tc1100-wmi/*. The first change fixes alwaysreturning 0 from the files in sysfs. The second one fixes jogdialstate reprting to match with the commands used to set it (e.g. nowafter "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;????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?ݢj"???m??????G????????????&???~???iO???z??v?^?m????????????I?
[Adding CC's]
On Thursday 25 December 2008 02:45:25 Krzysztof Kosiński wrote:
> 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
Can you resend this with a Signed-off-by, so I can ACK it and Len can merge
it.
Also, please add to your description of this patch that it fixes Bug 12286.
-Carlos
> --- 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;
--
E-Mail: [email protected]
Web: strangeworlds.co.uk
GPG Key ID: 0x23EE722D
(Resend)This small patch fixes the state reported when reading the files in/sys/devices/platofrm/tc1100-wmi/*. The first change fixes alwaysreturning 0 from the files in sysfs. The second one fixes jogdialstate reporting to match with the commands used to set it (e.g. nowafter "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 <[email protected]>
--- linux-2.6.27/drivers/misc/tc1100-wmi.c 2008-10-1000: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?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?ݢj"???m??????G????????????&???~???iO???z??v?^?m????????????I?
Len, please apply.
On Thursday 25 December 2008 13:30:46 Krzysztof Kosiński wrote:
> (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 <[email protected]>
Cc: [email protected]
Signed-off-by: Carlos Corbacho <[email protected]>
>
> --- 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;
--
E-Mail: [email protected]
Web: strangeworlds.co.uk
GPG Key ID: 0x23EE722D