aboutsummaryrefslogtreecommitdiff
path: root/drivers/input/input.c
diff options
context:
space:
mode:
authorAnshul Garg <anshul.g@samsung.com>2014-12-13 11:58:23 -0800
committerMoyster <oysterized@gmail.com>2016-09-10 12:03:06 +0200
commit2a3fdd1064c83a11232f4a130e287d9c6259de85 (patch)
treebe8f6ca2d58243cc8732889df194787683fdbaca /drivers/input/input.c
parentb3f7f8ff57c1ac6b78224f2eb9236a78a4e47036 (diff)
Input: optimize events_per_packet count calculation
This patch avoids unnecessary operations while estimating events per packet for an input device when event type is not set. Change-Id: I913be1e5356d5ca7d3047e6b0413069993c2921c Signed-off-by: Anshul Garg <anshul.g@samsung.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Git-commit: baf332c0f1cede26e9c2af6276b36b4c3a36e34a Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git Signed-off-by: Matt Wagantall <mattw@codeaurora.org> Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
Diffstat (limited to 'drivers/input/input.c')
-rw-r--r--drivers/input/input.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/drivers/input/input.c b/drivers/input/input.c
index 8cff276f5..86bef0d7b 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
@@ -1933,18 +1933,22 @@ static unsigned int input_estimate_events_per_packet(struct input_dev *dev)
events = mt_slots + 1; /* count SYN_MT_REPORT and SYN_REPORT */
- for (i = 0; i < ABS_CNT; i++) {
- if (test_bit(i, dev->absbit)) {
- if (input_is_mt_axis(i))
- events += mt_slots;
- else
- events++;
+ if (test_bit(EV_ABS, dev->evbit)) {
+ for (i = 0; i < ABS_CNT; i++) {
+ if (test_bit(i, dev->absbit)) {
+ if (input_is_mt_axis(i))
+ events += mt_slots;
+ else
+ events++;
+ }
}
}
- for (i = 0; i < REL_CNT; i++)
- if (test_bit(i, dev->relbit))
- events++;
+ if (test_bit(EV_REL, dev->evbit)) {
+ for (i = 0; i < REL_CNT; i++)
+ if (test_bit(i, dev->relbit))
+ events++;
+ }
/* Make room for KEY and MSC events */
events += 7;