Input: Add enabled device attribute

Allows closing the hardware device while the input device is open.

cherry-picking from android-exynos-manta-3.4-jb-mr1.1
commit id 8da9e5fe1e25de1cb9ab8d2d74f4d7fff8d7a220

Signed-off-by: Arve Hjønnevåg <arve@android.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Input: Set users to 0 when an input device is disabled though sysfs

Some drivers check dev->users suspend and resume. If the device
was turned off with the sysfs hook, it should not turn back on
in resume.

cherry-picking from android-exynos-manta-3.4-jb-mr1.1
commit id ebdfb336782deafee6667730c1ca1b3c1fbd551e

Signed-off-by: Arve Hjønnevåg <arve@android.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
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.

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: Pranav Vashi <neobuddy89@gmail.com>
input: evdev: daisy-chain header and client buffers

The evdev driver calculates memory required to hold
client data using power-of-2 math, and then adds header
size, which pushes the request over the power of 2 and
requires 2x larger allocation.

Change the logic to daisy-chain the header and client array.
That way instead of single order4 allocation, we will make
order0+order2.

Signed-off-by: Igor Kovalenko <cik009@motorola.com>
SLT-Approved: Slta Waiver <sltawvr@motorola.com>
Tested-by: Jira Key <jirakey@motorola.com>
Reviewed-by: Christopher Fries <qcf001@motorola.com>
Reviewed-by: Jason Hrycay <jason.hrycay@motorola.com>
Reviewed-by: Klocwork kwcheck <klocwork-kwcheck@sourceforge.mot.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
input: keyreset: process pressed keys at init

Signed-off-by: Dima Zavin <dima@android.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
input: keyreset: move init to subsys to be ready early

Bug: 7344361
Change-Id: I3564a354fddd69f352704c9e819ea4538096264a
Signed-off-by: Dima Zavin <dima@android.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
input: keyreset: add support for reset after timeout

If a timeout is requested, a delayed work item will be
scheduled to restart the device. If the keys are released
before the timeout expires, the reset is aborted.

As expected, the reset_fn can be used to reset the device
after the timeout.

Bug: 7344361
Change-Id: I1d77cdb3dcc63f579b1250506f0a30de1e033d67
Signed-off-by: Dima Zavin <dima@android.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
input: keyreset: add support for device tree

Change-Id: I85bba99f2b73b456c19b74c7a5e1d436a1280532
Signed-off-by: darren.kang <darren.kang@lge.com>
Signed-off-by: Devin Kim <dojip.kim@lge.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
input: keyreset: add support for checking boot mode

for enabling in certain boot mode. insert boot mode
checking. and compare string in device tree.
Only in matching case, It allow enable driver.

For set string of boot mode,
It should be inserted in device tree like below:
keyreset {
	compatible = "keyreset";
+	enable-boot-mode = "charger";
	...
}

Change-Id: Ic557e488da3aa0644addd3b94addb122882196e3
Signed-off-by: darren.kang <darren.kang@lge.com>
Signed-off-by: Devin Kim <dojip.kim@lge.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Input: xpad - handle all variations of Mad Catz Beat Pad

The device should be handled by xpad driver instead of generic HID driver.

Signed-off-by: Yuri Khan <yurivkhan@gmail.com>
Acked-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Input: xpad - add signature for Razer Onza Tournament Edition

Signed-off-by: Ilia Katsnelson <k0009000@gmail.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Input: xpad - add Andamiro Pump It Up pad

I couldn't find the vendor ID in any of the online databases, but this
mat has a Pump It Up logo on the top side of the controller compartment,
and a disclaimer stating that Andamiro will not be liable on the bottom.

Signed-off-by: Yuri Khan <yurivkhan@gmail.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>