appletouch.c (f2e1d89f9b349b3cd914b7c6ec6368632f4ad048) appletouch.c (46249ea60fbb61a72ee6929b831b1f3e6865f024)
1/*
2 * Apple USB Touchpad (for post-February 2005 PowerBooks and MacBooks) driver
3 *
4 * Copyright (C) 2001-2004 Greg Kroah-Hartman (greg@kroah.com)
5 * Copyright (C) 2005 Johannes Berg (johannes@sipsolutions.net)
6 * Copyright (C) 2005 Stelian Pop (stelian@popies.net)
7 * Copyright (C) 2005 Frank Arnold (frank@scirocco-5v-turbo.de)
8 * Copyright (C) 2005 Peter Osterlund (petero2@telia.com)

--- 490 unchanged lines hidden (view full) ---

499 input_report_key(dev->input, BTN_TOUCH, 0);
500 input_report_abs(dev->input, ABS_PRESSURE, 0);
501 atp_report_fingers(dev->input, 0);
502
503 /* reset the accumulator on release */
504 memset(dev->xy_acc, 0, sizeof(dev->xy_acc));
505 }
506
1/*
2 * Apple USB Touchpad (for post-February 2005 PowerBooks and MacBooks) driver
3 *
4 * Copyright (C) 2001-2004 Greg Kroah-Hartman (greg@kroah.com)
5 * Copyright (C) 2005 Johannes Berg (johannes@sipsolutions.net)
6 * Copyright (C) 2005 Stelian Pop (stelian@popies.net)
7 * Copyright (C) 2005 Frank Arnold (frank@scirocco-5v-turbo.de)
8 * Copyright (C) 2005 Peter Osterlund (petero2@telia.com)

--- 490 unchanged lines hidden (view full) ---

499 input_report_key(dev->input, BTN_TOUCH, 0);
500 input_report_abs(dev->input, ABS_PRESSURE, 0);
501 atp_report_fingers(dev->input, 0);
502
503 /* reset the accumulator on release */
504 memset(dev->xy_acc, 0, sizeof(dev->xy_acc));
505 }
506
507 /* Geyser 3 will continue to send packets continually after
507 input_report_key(dev->input, BTN_LEFT, key);
508 input_sync(dev->input);
509
510 /* Many Geysers will continue to send packets continually after
508 the first touch unless reinitialised. Do so if it's been
509 idle for a while in order to avoid waking the kernel up
510 several hundred times a second */
511
511 the first touch unless reinitialised. Do so if it's been
512 idle for a while in order to avoid waking the kernel up
513 several hundred times a second */
514
512 if (atp_is_geyser_3(dev)) {
513 if (!x && !y && !key) {
514 dev->idlecount++;
515 if (dev->idlecount == 10) {
516 dev->valid = 0;
517 schedule_work(&dev->work);
518 }
515 if (!x && !y && !key) {
516 dev->idlecount++;
517 if (dev->idlecount == 10) {
518 dev->valid = 0;
519 schedule_work(&dev->work);
519 }
520 }
520 else
521 dev->idlecount = 0;
522 }
521 } else
522 dev->idlecount = 0;
523
523
524 input_report_key(dev->input, BTN_LEFT, key);
525 input_sync(dev->input);
526
527exit:
528 retval = usb_submit_urb(dev->urb, GFP_ATOMIC);
529 if (retval) {
530 err("%s - usb_submit_urb failed with result %d",
531 __FUNCTION__, retval);
532 }
533}
534

--- 216 unchanged lines hidden ---
524exit:
525 retval = usb_submit_urb(dev->urb, GFP_ATOMIC);
526 if (retval) {
527 err("%s - usb_submit_urb failed with result %d",
528 __FUNCTION__, retval);
529 }
530}
531

--- 216 unchanged lines hidden ---