diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-22 19:29:58 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-22 19:29:58 -0700 |
commit | 81f8320f624a785d77443ace83391d0fdee695f6 (patch) | |
tree | ef061e677c0643b6ab565580caaf72a3de90ed72 /drivers/input/mouse | |
parent | 6d435365dd49ac5f7fe6f0e757e942875b1d1550 (diff) | |
parent | 46249ea60fbb61a72ee6929b831b1f3e6865f024 (diff) | |
download | linux-3.10-81f8320f624a785d77443ace83391d0fdee695f6.tar.gz linux-3.10-81f8320f624a785d77443ace83391d0fdee695f6.tar.bz2 linux-3.10-81f8320f624a785d77443ace83391d0fdee695f6.zip |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
Input: appletouch - apply idle reset logic to all touchpads
Input: usbtouchscreen - add support for GoTop tablet devices
Input: bf54x-keys - return real error when request_irq() fails
Input: i8042 - export i8042_command()
Diffstat (limited to 'drivers/input/mouse')
-rw-r--r-- | 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 0117817bf53..f132702d137 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); |