[alsa-devel] [PATCH v4 1/3] ECI: input: introduce ECI accessory input driver

Dmitry Torokhov dmitry.torokhov at gmail.com
Thu Jan 20 09:11:18 CET 2011


On Thu, Jan 20, 2011 at 09:57:28AM +0200, Tapio Vihuri wrote:
> On Wed, 2011-01-19 at 09:44 -0800, ext Dmitry Torokhov wrote:
> > Hi Tapio,
> > 
> > On Wed, Jan 19, 2011 at 02:06:54PM +0200, tapio.vihuri at nokia.com wrote:
> > > +
> > > +	for (; key->type != KE_END; key++) {
> > > +		switch (key->type) {
> > > +		case KE_KEY:
> > > +			__set_bit(key->keycode, eci->acc_input->keybit);
> > > +			break;
> > > +		case KE_SW:
> > > +		case KE_VSW:
> > > +			__set_bit(key->keycode, eci->acc_input->swbit);
> > > +			break;
> > > +		}
> > > +	}
> > > +
> > 
> > Is this still needed? I believe sparse_keymap_setup() below shoudl take
> > care of this...
> > 
> > > +	__set_bit(EV_KEY, eci->acc_input->evbit);
> > > +	__set_bit(EV_SW, eci->acc_input->evbit);
> > > +	__set_bit(EV_REP, eci->acc_input->evbit);
> > > +
> > > +	err = sparse_keymap_setup(eci->acc_input, eci_keymap, NULL);
> > > +	if (err)
> > > +		goto err_free_dev;
> > > +
> > 
> 
> Hi Dmitry.
> 
> Thanks for pointing this out, as we have sparse keymap, we should use
> it :)
> 
> How about KE_VSW case ? Shouldn't it be in the sparse_keymap_setup {}
> also ?
> 

Indeed. Does the patch below fix it?

Thanks.

-- 
Dmitry

Input: sparse-keymap - fix KEY_VSW handling in sparse_keymap_setup

From: Dmitry Torokhov <dmitry.torokhov at gmail.com>

We were forgetting to set up device capabilities for KEY_VSW entries.

Reported-by: Tapio Vihuri <tapio.vihuri at nokia.com> 
Signed-off-by: Dmitry Torokhov <dtor at mail.ru>
---

 drivers/input/sparse-keymap.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)


diff --git a/drivers/input/sparse-keymap.c b/drivers/input/sparse-keymap.c
index a29a7812..7729e54 100644
--- a/drivers/input/sparse-keymap.c
+++ b/drivers/input/sparse-keymap.c
@@ -201,6 +201,7 @@ int sparse_keymap_setup(struct input_dev *dev,
 			break;
 
 		case KE_SW:
+		case KE_VSW:
 			__set_bit(EV_SW, dev->evbit);
 			__set_bit(entry->sw.code, dev->swbit);
 			break;


More information about the Alsa-devel mailing list