]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/input/mouse/appletouch.c
Fix very high interrupt rate for IRQ8 (rtc) unless pnpacpi=off
[linux-2.6-omap-h63xx.git] / drivers / input / mouse / appletouch.c
index a1804bfdbb8ce38510f783c233682e12e5dabac8..0117817bf538c5ce36511965b08134b550aa5c3a 100644 (file)
@@ -502,18 +502,23 @@ static void atp_complete(struct urb* urb)
 
                /* reset the accumulator on release */
                memset(dev->xy_acc, 0, sizeof(dev->xy_acc));
+       }
+
+       /* 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 */
 
-               /* 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 (!key && atp_is_geyser_3(dev)) {
+       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;
        }
 
        input_report_key(dev->input, BTN_LEFT, key);