[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <45CAE5A1.80409@wincor-nixdorf.com>
Date: Thu, 08 Feb 2007 09:56:01 +0100
From: Frank Salomon <frank.salomon@...cor-nixdorf.com>
To: linux-kernel@...r.kernel.org
Subject: EV_MSC / driver/input/input.c (Input Handler)
Hi All,
I had written an additional input_handler :
static struct input_device_id pcraw_ids[] = {
{
.flags = INPUT_DEVICE_ID_MATCH_EVBIT,
.evbit = { BIT(EV_MSC) },
},
{ }, /* Terminating entry */
};
to get MSC_RAW events from the atkeyboard :
input_event (&atkbd->dev, EV_MSC, MSC_RAW, code)
But I only get these events :
input_event(&atkbd->dev, EV_MSC, MSC_SCAN, code);
I know the reason is in driver/input/input.c :
case EV_MSC:
if (code > MSC_MAX || !test_bit(code, dev->mscbit))
return;
if (dev->event) dev->event(dev, type, code, value);
break;
because of (driver/input/keyboard/atkbd.c):
atkbd->dev.mscbit[0] = atkbd->softraw ? BIT(MSC_SCAN) :
BIT(MSC_RAW) | BIT(MSC_SCAN);
I would like to change driver/input/input.c like this :
case EV_MSC:
if (code > MSC_MAX)
return;
if (test_bit(code, dev->mscbit))
if (dev->event) dev->event(dev, type, code, value);
break;
Any comments ? Maybe I misunderstand the concept of the input events. In
that case, please give me a short description or let me know were I can
find any documentation.
Best regards, Frank
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists