Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=46249ea60fbb61a72ee6929b831b1f3e6865f024
Commit:     46249ea60fbb61a72ee6929b831b1f3e6865f024
Parent:     14e4020630b364cc564172a476cd6a6ac4bc7393
Author:     Anton Ekblad <[EMAIL PROTECTED]>
AuthorDate: Mon Oct 22 00:59:59 2007 -0400
Committer:  Dmitry Torokhov <[EMAIL PROTECTED]>
CommitDate: Mon Oct 22 00:59:59 2007 -0400

    Input: appletouch - apply idle reset logic to all touchpads
    
    Not only Geyser 3 but also Geyser 1 need to be reset after they become
    idle to stop them from needlessly waking up the kernel. Do idle reset
    on all touchpads, regardless of their version - if we see 10 empty
    packets the touchpad needs to be reset; good touchpads should not send
    empty packets anyway.
    
    Signed-off-by: Dmitry Torokhov <[EMAIL PROTECTED]>
---
 drivers/input/mouse/appletouch.c |   25 +++++++++++--------------
 1 files changed, 11 insertions(+), 14 deletions(-)

diff --git a/drivers/input/mouse/appletouch.c b/drivers/input/mouse/appletouch.c
index 0117817..f132702 100644
--- a/drivers/input/mouse/appletouch.c
+++ b/drivers/input/mouse/appletouch.c
@@ -504,25 +504,22 @@ static void atp_complete(struct urb* urb)
                memset(dev->xy_acc, 0, sizeof(dev->xy_acc));
        }
 
-       /* Geyser 3 will continue to send packets continually after
+       input_report_key(dev->input, BTN_LEFT, key);
+       input_sync(dev->input);
+
+       /* Many Geysers 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 (atp_is_geyser_3(dev)) {
-               if (!x && !y && !key) {
-                       dev->idlecount++;
-                       if (dev->idlecount == 10) {
-                               dev->valid = 0;
-                               schedule_work(&dev->work);
-                       }
+       if (!x && !y && !key) {
+               dev->idlecount++;
+               if (dev->idlecount == 10) {
+                       dev->valid = 0;
+                       schedule_work(&dev->work);
                }
-               else
-                       dev->idlecount = 0;
-       }
-
-       input_report_key(dev->input, BTN_LEFT, key);
-       input_sync(dev->input);
+       } else
+               dev->idlecount = 0;
 
 exit:
        retval = usb_submit_urb(dev->urb, GFP_ATOMIC);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to