linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] fix appletouch geyser 1 breakage
@ 2007-10-24 10:44 Johannes Berg
  2007-10-24 11:22 ` Johannes Berg
                   ` (2 more replies)
  0 siblings, 3 replies; 18+ messages in thread
From: Johannes Berg @ 2007-10-24 10:44 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: linuxppc-dev list, Anton Ekblad

The patch 46249ea60fbb61a72ee6929b831b1f3e6865f024 was obviously done
without testing on a Geyser 1, and I'm a very annoyed that it was
applied. It causes appletouch to continuously printk:

drivers/input/mouse/appletouch.c: Could not do mode read request from device (Geyser 3 mode)

because the Geyser 1 doesn't respond to that. The patch description also
states:

> if we see 10 empty packets the touchpad needs to be reset; good
> touchpads should not send empty packets anyway.

which is *TOTALLY* bogus since Geyser 1 touchpads have no notion of
empty packets, the simply continuously send measurements. One look at
the specification would have confirmed that.

This reverts the clueless commit.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
---

--- linux-2.6.orig/drivers/input/mouse/appletouch.c	2007-10-24 12:37:39.140210069 +0200
+++ linux-2.6/drivers/input/mouse/appletouch.c	2007-10-24 12:37:50.000215820 +0200
@@ -504,22 +504,25 @@ static void atp_complete(struct urb* urb
 		memset(dev->xy_acc, 0, sizeof(dev->xy_acc));
 	}
 
-	input_report_key(dev->input, BTN_LEFT, key);
-	input_sync(dev->input);
-
-	/* Many Geysers will continue to send packets continually after
+	/* Geyser 3 will continue to send packets continually after
 	   the first touch unless reinitialised. Do so if it's been
 	   idle for a while in order to avoid waking the kernel up
 	   several hundred times a second */
 
-	if (!x && !y && !key) {
-		dev->idlecount++;
-		if (dev->idlecount == 10) {
-			dev->valid = 0;
-			schedule_work(&dev->work);
+	if (atp_is_geyser_3(dev)) {
+		if (!x && !y && !key) {
+			dev->idlecount++;
+			if (dev->idlecount == 10) {
+				dev->valid = 0;
+				schedule_work(&dev->work);
+			}
 		}
-	} else
-		dev->idlecount = 0;
+		else
+			dev->idlecount = 0;
+	}
+
+	input_report_key(dev->input, BTN_LEFT, key);
+	input_sync(dev->input);
 
 exit:
 	retval = usb_submit_urb(dev->urb, GFP_ATOMIC);

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2007-10-29  8:10 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-24 10:44 [PATCH] fix appletouch geyser 1 breakage Johannes Berg
2007-10-24 11:22 ` Johannes Berg
2007-10-24 11:29 ` [PATCH v2] appletouch: fix fountain touchpad breakage Johannes Berg
2007-10-24 12:55 ` [PATCH] fix appletouch geyser 1 breakage Dmitry Torokhov
2007-10-24 13:05   ` Johannes Berg
2007-10-24 13:34     ` Dmitry Torokhov
2007-10-24 13:36       ` Johannes Berg
2007-10-24 14:29         ` Dmitry Torokhov
2007-10-25 13:23           ` Johannes Berg
2007-10-25 18:28             ` Benjamin Berg
2007-10-26 16:05               ` Dmitry Torokhov
2007-10-26 20:31                 ` Johannes Berg
2007-10-28  5:00                   ` Dmitry Torokhov
2007-10-28 10:31                     ` Johannes Berg
2007-10-28 14:54                       ` Dmitry Torokhov
2007-10-28 15:08                         ` Johannes Berg
2007-10-29  5:09                           ` Dmitry Torokhov
2007-10-29  8:12                             ` Johannes Berg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).