Input: Send events one packet at a time

On heavy event loads, such as a multitouch driver, the irqsoff
latency
can be as high as 250 us.  By accumulating a frame worth of
data
before passing it on, the latency can be dramatically reduced.  As
a
side effect, the special EV_SYN handling can be removed, since
the
frame is now atomic.

This patch adds the events() handler callback
and uses it if it
exists. The latency is improved by 50 us even without
the callback.

Change-Id: Iebd9b1868ae6300a922a45b6d104e7c2b38e4cf5
Cc:
Daniel Kurtz <djkurtz@chromium.org>
Tested-by: Benjamin Tissoires
<benjamin.tissoires@enac.fr>
Tested-by: Ping Cheng
<pingc@wacom.com>
Tested-by: Sedat Dilek
<sedat.dilek@gmail.com>
Acked-by: Dmitry Torokhov
<dmitry.torokhov@gmail.com>
Signed-off-by: Henrik Rydberg
<rydberg@euromail.se>

Input: Improve the events-per-packet
estimate

The events-per-packet estimate has so far been used by MT
devices
only. This patch adjusts the packet buffer size to also
accomodate the
KEY and MSC events.  Keyboards normally send one or two
keys at a
time. MT devices normally send a number of button keys along
with the
MT information.  The buffer size chosen here covers those
cases, and
matches the default buffer size in evdev. Since the input
estimate is
now preferred, remove the special input-mt
estimate.

Reviewed-and-tested-by: Ping Cheng
<pingc@wacom.com>
Tested-by: Benjamin Tissoires
<benjamin.tissoires@enac.fr>
Acked-by: Dmitry Torokhov
<dmitry.torokhov@gmail.com>
Signed-off-by: Henrik Rydberg
<rydberg@euromail.se>
Signed-off-by: franciscofranco
<franciscofranco.1990@gmail.com>
Signed-off-by: Francisco Franco
<franciscofranco.1990@gmail.com>

idea is taken here -
https://github.com/franciscofranco/M8/commit/3231613a193390ae155156726d8bf3b622051f47