* [PATCH] Input : Optimize joydev_connect function
@ 2015-03-10 18:36 Anshul Garg
2015-03-11 1:44 ` Dmitry Torokhov
0 siblings, 1 reply; 2+ messages in thread
From: Anshul Garg @ 2015-03-10 18:36 UTC (permalink / raw)
To: dmitry.torokhov, dtor, linux-input; +Cc: aksgarg1989, anshul.g
From: Anshul Garg <aksgarg1989@gmail.com>
In joydev_connect function added check for event type before
setting properties for that event. This will avoid dummy
loop iterations which checks for event code even if event type
is not set.
Signed-off-by: Anshul Garg <aksgarg1989@gmail.com>
---
drivers/input/joydev.c | 44 ++++++++++++++++++++++++--------------------
1 file changed, 24 insertions(+), 20 deletions(-)
diff --git a/drivers/input/joydev.c b/drivers/input/joydev.c
index f362883..a37a26c 100644
--- a/drivers/input/joydev.c
+++ b/drivers/input/joydev.c
@@ -797,27 +797,31 @@ static int joydev_connect(struct input_handler *handler, struct input_dev *dev,
joydev->handle.name = dev_name(&joydev->dev);
joydev->handle.handler = handler;
joydev->handle.private = joydev;
+
+ if (test_bit(EV_ABS, dev->evbit)) {
+ for (i = 0; i < ABS_CNT; i++)
+ if (test_bit(i, dev->absbit)) {
+ joydev->absmap[i] = joydev->nabs;
+ joydev->abspam[joydev->nabs] = i;
+ joydev->nabs++;
+ }
+ }
- for (i = 0; i < ABS_CNT; i++)
- if (test_bit(i, dev->absbit)) {
- joydev->absmap[i] = joydev->nabs;
- joydev->abspam[joydev->nabs] = i;
- joydev->nabs++;
- }
-
- for (i = BTN_JOYSTICK - BTN_MISC; i < KEY_MAX - BTN_MISC + 1; i++)
- if (test_bit(i + BTN_MISC, dev->keybit)) {
- joydev->keymap[i] = joydev->nkey;
- joydev->keypam[joydev->nkey] = i + BTN_MISC;
- joydev->nkey++;
- }
-
- for (i = 0; i < BTN_JOYSTICK - BTN_MISC; i++)
- if (test_bit(i + BTN_MISC, dev->keybit)) {
- joydev->keymap[i] = joydev->nkey;
- joydev->keypam[joydev->nkey] = i + BTN_MISC;
- joydev->nkey++;
- }
+ if (test_bit(EV_KEY, dev->evbit)) {
+ for (i = BTN_JOYSTICK - BTN_MISC; i < KEY_MAX - BTN_MISC + 1; i++)
+ if (test_bit(i + BTN_MISC, dev->keybit)) {
+ joydev->keymap[i] = joydev->nkey;
+ joydev->keypam[joydev->nkey] = i + BTN_MISC;
+ joydev->nkey++;
+ }
+
+ for (i = 0; i < BTN_JOYSTICK - BTN_MISC; i++)
+ if (test_bit(i + BTN_MISC, dev->keybit)) {
+ joydev->keymap[i] = joydev->nkey;
+ joydev->keypam[joydev->nkey] = i + BTN_MISC;
+ joydev->nkey++;
+ }
+ }
for (i = 0; i < joydev->nabs; i++) {
j = joydev->abspam[i];
--
1.7.9.5
---
This email has been checked for viruses by Avast antivirus software.
http://www.avast.com
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] Input : Optimize joydev_connect function
2015-03-10 18:36 [PATCH] Input : Optimize joydev_connect function Anshul Garg
@ 2015-03-11 1:44 ` Dmitry Torokhov
0 siblings, 0 replies; 2+ messages in thread
From: Dmitry Torokhov @ 2015-03-11 1:44 UTC (permalink / raw)
To: Anshul Garg; +Cc: linux-input, anshul.g
Hi Anshul,
On Tue, Mar 10, 2015 at 11:36:17AM -0700, Anshul Garg wrote:
> From: Anshul Garg <aksgarg1989@gmail.com>
>
> In joydev_connect function added check for event type before
> setting properties for that event. This will avoid dummy
> loop iterations which checks for event code even if event type
> is not set.
I do not think you'll find a device that would fit joydev's matching
rules that would benefit from this.
>
> Signed-off-by: Anshul Garg <aksgarg1989@gmail.com>
> ---
> drivers/input/joydev.c | 44 ++++++++++++++++++++++++--------------------
> 1 file changed, 24 insertions(+), 20 deletions(-)
>
> diff --git a/drivers/input/joydev.c b/drivers/input/joydev.c
> index f362883..a37a26c 100644
> --- a/drivers/input/joydev.c
> +++ b/drivers/input/joydev.c
> @@ -797,27 +797,31 @@ static int joydev_connect(struct input_handler *handler, struct input_dev *dev,
> joydev->handle.name = dev_name(&joydev->dev);
> joydev->handle.handler = handler;
> joydev->handle.private = joydev;
> +
> + if (test_bit(EV_ABS, dev->evbit)) {
> + for (i = 0; i < ABS_CNT; i++)
> + if (test_bit(i, dev->absbit)) {
> + joydev->absmap[i] = joydev->nabs;
> + joydev->abspam[joydev->nabs] = i;
> + joydev->nabs++;
> + }
> + }
>
> - for (i = 0; i < ABS_CNT; i++)
> - if (test_bit(i, dev->absbit)) {
> - joydev->absmap[i] = joydev->nabs;
> - joydev->abspam[joydev->nabs] = i;
> - joydev->nabs++;
> - }
> -
> - for (i = BTN_JOYSTICK - BTN_MISC; i < KEY_MAX - BTN_MISC + 1; i++)
> - if (test_bit(i + BTN_MISC, dev->keybit)) {
> - joydev->keymap[i] = joydev->nkey;
> - joydev->keypam[joydev->nkey] = i + BTN_MISC;
> - joydev->nkey++;
> - }
> -
> - for (i = 0; i < BTN_JOYSTICK - BTN_MISC; i++)
> - if (test_bit(i + BTN_MISC, dev->keybit)) {
> - joydev->keymap[i] = joydev->nkey;
> - joydev->keypam[joydev->nkey] = i + BTN_MISC;
> - joydev->nkey++;
> - }
> + if (test_bit(EV_KEY, dev->evbit)) {
> + for (i = BTN_JOYSTICK - BTN_MISC; i < KEY_MAX - BTN_MISC + 1; i++)
> + if (test_bit(i + BTN_MISC, dev->keybit)) {
> + joydev->keymap[i] = joydev->nkey;
> + joydev->keypam[joydev->nkey] = i + BTN_MISC;
> + joydev->nkey++;
> + }
> +
> + for (i = 0; i < BTN_JOYSTICK - BTN_MISC; i++)
> + if (test_bit(i + BTN_MISC, dev->keybit)) {
> + joydev->keymap[i] = joydev->nkey;
> + joydev->keypam[joydev->nkey] = i + BTN_MISC;
> + joydev->nkey++;
> + }
> + }
>
> for (i = 0; i < joydev->nabs; i++) {
> j = joydev->abspam[i];
> --
> 1.7.9.5
>
>
> ---
> This email has been checked for viruses by Avast antivirus software.
> http://www.avast.com
>
--
Dmitry
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-03-11 1:44 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-03-10 18:36 [PATCH] Input : Optimize joydev_connect function Anshul Garg
2015-03-11 1:44 ` Dmitry Torokhov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).