* [PATCH] pxa: Fix some issues with pxa27x_keypad driver v2
@ 2008-05-28 14:25 Antonio Ospite
2008-05-28 14:31 ` Dmitry Torokhov
0 siblings, 1 reply; 6+ messages in thread
From: Antonio Ospite @ 2008-05-28 14:25 UTC (permalink / raw)
To: linux-input; +Cc: eric miao, Dmitry Torokhov
Fix some issues with pxa27x_keypad driver:
1. set input bits for direct keys codes
2. set input bits for rotary encoder codes only if rotary
encoder is enabled
3. enable EV_REL only if rel_codes are set for rotary encoders
Signed-off-by: Antonio Ospite <ao2@openezx.org>
Index: linux-2.6.26-rc3/drivers/input/keyboard/pxa27x_keypad.c
===================================================================
--- linux-2.6.26-rc3.orig/drivers/input/keyboard/pxa27x_keypad.c
+++ linux-2.6.26-rc3/drivers/input/keyboard/pxa27x_keypad.c
@@ -136,6 +136,9 @@
set_bit(code, input_dev->keybit);
}
+ for (i = 0; i < pdata->direct_key_num; i++)
+ set_bit(pdata->direct_key_map[i], input_dev->keybit);
+
keypad->rotary_up_key[0] = pdata->rotary0_up_key;
keypad->rotary_up_key[1] = pdata->rotary1_up_key;
keypad->rotary_down_key[0] = pdata->rotary0_down_key;
@@ -143,17 +146,21 @@
keypad->rotary_rel_code[0] = pdata->rotary0_rel_code;
keypad->rotary_rel_code[1] = pdata->rotary1_rel_code;
- if (pdata->rotary0_up_key && pdata->rotary0_down_key) {
- set_bit(pdata->rotary0_up_key, input_dev->keybit);
- set_bit(pdata->rotary0_down_key, input_dev->keybit);
- } else
- set_bit(pdata->rotary0_rel_code, input_dev->relbit);
-
- if (pdata->rotary1_up_key && pdata->rotary1_down_key) {
- set_bit(pdata->rotary1_up_key, input_dev->keybit);
- set_bit(pdata->rotary1_down_key, input_dev->keybit);
- } else
- set_bit(pdata->rotary1_rel_code, input_dev->relbit);
+ if (pdata->enable_rotary0) {
+ if (pdata->rotary0_up_key && pdata->rotary0_down_key) {
+ set_bit(pdata->rotary0_up_key, input_dev->keybit);
+ set_bit(pdata->rotary0_down_key, input_dev->keybit);
+ } else
+ set_bit(pdata->rotary0_rel_code, input_dev->relbit);
+ }
+
+ if (pdata->enable_rotary1) {
+ if (pdata->rotary1_up_key && pdata->rotary1_down_key) {
+ set_bit(pdata->rotary1_up_key, input_dev->keybit);
+ set_bit(pdata->rotary1_down_key, input_dev->keybit);
+ } else
+ set_bit(pdata->rotary1_rel_code, input_dev->relbit);
+ }
}
static inline unsigned int lookup_matrix_keycode(
@@ -484,8 +491,9 @@
keypad->input_dev = input_dev;
input_set_drvdata(input_dev, keypad);
- input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REP) |
- BIT_MASK(EV_REL);
+ input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REP);
+ if (keypad->pdata->rotary0_rel_code || keypad->pdata->rotary1_rel_code)
+ input_dev->evbit[0] |= BIT_MASK(EV_REL);
pxa27x_keypad_build_keycode(keypad);
platform_set_drvdata(pdev, keypad);
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] pxa: Fix some issues with pxa27x_keypad driver v2
2008-05-28 14:25 [PATCH] pxa: Fix some issues with pxa27x_keypad driver v2 Antonio Ospite
@ 2008-05-28 14:31 ` Dmitry Torokhov
2008-05-28 15:11 ` Antonio Ospite
0 siblings, 1 reply; 6+ messages in thread
From: Dmitry Torokhov @ 2008-05-28 14:31 UTC (permalink / raw)
To: Antonio Ospite; +Cc: linux-input, eric miao
Hi Antonio,
On Wed, May 28, 2008 at 04:25:39PM +0200, Antonio Ospite wrote:
>
> - input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REP) |
> - BIT_MASK(EV_REL);
> + input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REP);
> + if (keypad->pdata->rotary0_rel_code || keypad->pdata->rotary1_rel_code)
> + input_dev->evbit[0] |= BIT_MASK(EV_REL);
Shouldn't this also check pdata->enable_rotaryX?
--
Dmitry
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] pxa: Fix some issues with pxa27x_keypad driver v2
2008-05-28 14:31 ` Dmitry Torokhov
@ 2008-05-28 15:11 ` Antonio Ospite
2008-05-28 15:15 ` Dmitry Torokhov
0 siblings, 1 reply; 6+ messages in thread
From: Antonio Ospite @ 2008-05-28 15:11 UTC (permalink / raw)
To: Dmitry Torokhov; +Cc: linux-input, eric miao
On Wed, 28 May 2008 10:31:25 -0400
Dmitry Torokhov <dmitry.torokhov@gmail.com> wrote:
> Hi Antonio,
>
> On Wed, May 28, 2008 at 04:25:39PM +0200, Antonio Ospite wrote:
> >
> > - input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REP) |
> > - BIT_MASK(EV_REL);
> > + input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REP);
> > + if (keypad->pdata->rotary0_rel_code || keypad->pdata->rotary1_rel_code)
> > + input_dev->evbit[0] |= BIT_MASK(EV_REL);
>
> Shouldn't this also check pdata->enable_rotaryX?
>
Yes, maybe.
Do you prefer a check like this?
if ((keypad->pdata->enable_rotary0 && keypad->pdata->rotary0_rel_code) ||
(keypad->pdata->enable_rotary1 && keypad->pdata->rotary1_rel_code))
input_dev->evbit[0] |= BIT_MASK(EV_REL);
Just confirm that and I'll resend a fixed version of the patch.
Thanks,
Antonio
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] pxa: Fix some issues with pxa27x_keypad driver v2
2008-05-28 15:11 ` Antonio Ospite
@ 2008-05-28 15:15 ` Dmitry Torokhov
2008-05-28 17:36 ` [PATCH] pxa: Fix some issues with pxa27x_keypad driver v3 Antonio Ospite
0 siblings, 1 reply; 6+ messages in thread
From: Dmitry Torokhov @ 2008-05-28 15:15 UTC (permalink / raw)
To: Antonio Ospite; +Cc: linux-input, eric miao
On Wed, May 28, 2008 at 05:11:14PM +0200, Antonio Ospite wrote:
> On Wed, 28 May 2008 10:31:25 -0400
> Dmitry Torokhov <dmitry.torokhov@gmail.com> wrote:
>
> > Hi Antonio,
> >
> > On Wed, May 28, 2008 at 04:25:39PM +0200, Antonio Ospite wrote:
> > >
> > > - input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REP) |
> > > - BIT_MASK(EV_REL);
> > > + input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REP);
> > > + if (keypad->pdata->rotary0_rel_code || keypad->pdata->rotary1_rel_code)
> > > + input_dev->evbit[0] |= BIT_MASK(EV_REL);
> >
> > Shouldn't this also check pdata->enable_rotaryX?
> >
>
> Yes, maybe.
> Do you prefer a check like this?
>
> if ((keypad->pdata->enable_rotary0 && keypad->pdata->rotary0_rel_code) ||
> (keypad->pdata->enable_rotary1 && keypad->pdata->rotary1_rel_code))
> input_dev->evbit[0] |= BIT_MASK(EV_REL);
>
> Just confirm that and I'll resend a fixed version of the patch.
>
Yep, that should work, thanks.
--
Dmitry
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] pxa: Fix some issues with pxa27x_keypad driver v3
2008-05-28 15:15 ` Dmitry Torokhov
@ 2008-05-28 17:36 ` Antonio Ospite
2008-05-29 0:37 ` eric miao
0 siblings, 1 reply; 6+ messages in thread
From: Antonio Ospite @ 2008-05-28 17:36 UTC (permalink / raw)
To: Dmitry Torokhov; +Cc: linux-input, eric miao
Fix some issues with pxa27x_keypad driver:
1. set input bits for direct keys codes
2. set input bits for rotary encoder codes only if rotary
encoder is enabled
3. enable EV_REL only if rel_codes are set for rotary encoders
Signed-off-by: Antonio Ospite <ao2@openezx.org>
Index: linux-2.6.26-rc3/drivers/input/keyboard/pxa27x_keypad.c
===================================================================
--- linux-2.6.26-rc3.orig/drivers/input/keyboard/pxa27x_keypad.c
+++ linux-2.6.26-rc3/drivers/input/keyboard/pxa27x_keypad.c
@@ -136,6 +136,9 @@
set_bit(code, input_dev->keybit);
}
+ for (i = 0; i < pdata->direct_key_num; i++)
+ set_bit(pdata->direct_key_map[i], input_dev->keybit);
+
keypad->rotary_up_key[0] = pdata->rotary0_up_key;
keypad->rotary_up_key[1] = pdata->rotary1_up_key;
keypad->rotary_down_key[0] = pdata->rotary0_down_key;
@@ -143,17 +146,21 @@
keypad->rotary_rel_code[0] = pdata->rotary0_rel_code;
keypad->rotary_rel_code[1] = pdata->rotary1_rel_code;
- if (pdata->rotary0_up_key && pdata->rotary0_down_key) {
- set_bit(pdata->rotary0_up_key, input_dev->keybit);
- set_bit(pdata->rotary0_down_key, input_dev->keybit);
- } else
- set_bit(pdata->rotary0_rel_code, input_dev->relbit);
-
- if (pdata->rotary1_up_key && pdata->rotary1_down_key) {
- set_bit(pdata->rotary1_up_key, input_dev->keybit);
- set_bit(pdata->rotary1_down_key, input_dev->keybit);
- } else
- set_bit(pdata->rotary1_rel_code, input_dev->relbit);
+ if (pdata->enable_rotary0) {
+ if (pdata->rotary0_up_key && pdata->rotary0_down_key) {
+ set_bit(pdata->rotary0_up_key, input_dev->keybit);
+ set_bit(pdata->rotary0_down_key, input_dev->keybit);
+ } else
+ set_bit(pdata->rotary0_rel_code, input_dev->relbit);
+ }
+
+ if (pdata->enable_rotary1) {
+ if (pdata->rotary1_up_key && pdata->rotary1_down_key) {
+ set_bit(pdata->rotary1_up_key, input_dev->keybit);
+ set_bit(pdata->rotary1_down_key, input_dev->keybit);
+ } else
+ set_bit(pdata->rotary1_rel_code, input_dev->relbit);
+ }
}
static inline unsigned int lookup_matrix_keycode(
@@ -484,8 +491,11 @@
keypad->input_dev = input_dev;
input_set_drvdata(input_dev, keypad);
- input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REP) |
- BIT_MASK(EV_REL);
+ input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REP);
+ if ((keypad->pdata->enable_rotary0 && keypad->pdata->rotary0_rel_code)
+ || (keypad->pdata->enable_rotary1
+ && keypad->pdata->rotary1_rel_code))
+ input_dev->evbit[0] |= BIT_MASK(EV_REL);
pxa27x_keypad_build_keycode(keypad);
platform_set_drvdata(pdev, keypad);
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] pxa: Fix some issues with pxa27x_keypad driver v3
2008-05-28 17:36 ` [PATCH] pxa: Fix some issues with pxa27x_keypad driver v3 Antonio Ospite
@ 2008-05-29 0:37 ` eric miao
0 siblings, 0 replies; 6+ messages in thread
From: eric miao @ 2008-05-29 0:37 UTC (permalink / raw)
To: Antonio Ospite; +Cc: Dmitry Torokhov, linux-input
On Thu, May 29, 2008 at 1:36 AM, Antonio Ospite
<ospite@studenti.unina.it> wrote:
>
> Fix some issues with pxa27x_keypad driver:
>
> 1. set input bits for direct keys codes
> 2. set input bits for rotary encoder codes only if rotary
> encoder is enabled
> 3. enable EV_REL only if rel_codes are set for rotary encoders
>
> Signed-off-by: Antonio Ospite <ao2@openezx.org>
>
> Index: linux-2.6.26-rc3/drivers/input/keyboard/pxa27x_keypad.c
> ===================================================================
> --- linux-2.6.26-rc3.orig/drivers/input/keyboard/pxa27x_keypad.c
> +++ linux-2.6.26-rc3/drivers/input/keyboard/pxa27x_keypad.c
> @@ -136,6 +136,9 @@
> set_bit(code, input_dev->keybit);
> }
>
> + for (i = 0; i < pdata->direct_key_num; i++)
> + set_bit(pdata->direct_key_map[i], input_dev->keybit);
> +
> keypad->rotary_up_key[0] = pdata->rotary0_up_key;
> keypad->rotary_up_key[1] = pdata->rotary1_up_key;
> keypad->rotary_down_key[0] = pdata->rotary0_down_key;
> @@ -143,17 +146,21 @@
> keypad->rotary_rel_code[0] = pdata->rotary0_rel_code;
> keypad->rotary_rel_code[1] = pdata->rotary1_rel_code;
>
> - if (pdata->rotary0_up_key && pdata->rotary0_down_key) {
> - set_bit(pdata->rotary0_up_key, input_dev->keybit);
> - set_bit(pdata->rotary0_down_key, input_dev->keybit);
> - } else
> - set_bit(pdata->rotary0_rel_code, input_dev->relbit);
> -
> - if (pdata->rotary1_up_key && pdata->rotary1_down_key) {
> - set_bit(pdata->rotary1_up_key, input_dev->keybit);
> - set_bit(pdata->rotary1_down_key, input_dev->keybit);
> - } else
> - set_bit(pdata->rotary1_rel_code, input_dev->relbit);
> + if (pdata->enable_rotary0) {
> + if (pdata->rotary0_up_key && pdata->rotary0_down_key) {
> + set_bit(pdata->rotary0_up_key, input_dev->keybit);
> + set_bit(pdata->rotary0_down_key, input_dev->keybit);
> + } else
> + set_bit(pdata->rotary0_rel_code, input_dev->relbit);
> + }
> +
> + if (pdata->enable_rotary1) {
> + if (pdata->rotary1_up_key && pdata->rotary1_down_key) {
> + set_bit(pdata->rotary1_up_key, input_dev->keybit);
> + set_bit(pdata->rotary1_down_key, input_dev->keybit);
> + } else
> + set_bit(pdata->rotary1_rel_code, input_dev->relbit);
> + }
> }
>
> static inline unsigned int lookup_matrix_keycode(
> @@ -484,8 +491,11 @@
> keypad->input_dev = input_dev;
> input_set_drvdata(input_dev, keypad);
>
> - input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REP) |
> - BIT_MASK(EV_REL);
> + input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REP);
> + if ((keypad->pdata->enable_rotary0 && keypad->pdata->rotary0_rel_code)
> + || (keypad->pdata->enable_rotary1
> + && keypad->pdata->rotary1_rel_code))
> + input_dev->evbit[0] |= BIT_MASK(EV_REL);
>
> pxa27x_keypad_build_keycode(keypad);
> platform_set_drvdata(pdev, keypad);
>
OK
--
Cheers
- eric
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2008-05-29 0:37 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-28 14:25 [PATCH] pxa: Fix some issues with pxa27x_keypad driver v2 Antonio Ospite
2008-05-28 14:31 ` Dmitry Torokhov
2008-05-28 15:11 ` Antonio Ospite
2008-05-28 15:15 ` Dmitry Torokhov
2008-05-28 17:36 ` [PATCH] pxa: Fix some issues with pxa27x_keypad driver v3 Antonio Ospite
2008-05-29 0:37 ` eric miao
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).