All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH][RESEND] Fix state reporting in tc1100-wmi
@ 2009-03-19 22:22 Krzysztof Kosiński
  0 siblings, 0 replies; only message in thread
From: Krzysztof Kosiński @ 2009-03-19 22:22 UTC (permalink / raw)
  To: linux-kernel

The tc1100-wmi driver should print the current states of wireless LAN and
jogdial brightness control when "cat /sys/devices/platform/tc1100-wmi/wireless"
and "cat /sys/devices/platform/tc1100-wmi/jogdial" are executed, respectively.
What actually happens is that both of those commands print 0 regardless of the
hardware state. The cause is that wmi_query_block returns an ACPI_TYPE_INTEGER
rather than ACPI_TYPE_BUFFER as the driver assumes. Additionally, the driver
intends to return a jogdial state that is inverted with respect to the commands
required to set it (e.g. it intends to return 1 after the jogdial file was
written with 0).

This patch fixes both of those issues - the commands to query the
state now work,
and should return the same state that was written. Fixes bug #12286.

Resend as requested on Bugzilla.

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;

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2009-03-19 22:22 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-03-19 22:22 [PATCH][RESEND] Fix state reporting in tc1100-wmi Krzysztof Kosiński

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.