Re: [PATCH] Map volume and brightness events on thinkpads
From: Kok, Auke
Date: Tue Oct 16 2007 - 16:49:21 EST
Dmitry Torokhov wrote:
> On 10/16/07, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
>>
>> On Tue, 16 Oct 2007, Matthew Garrett wrote:
>>>> It still doesn't mean it belongs inside the stream of data for the keyboard,
>>>> maskerading as a key press.
>>> But it *is* a key press!
>> To get somewhat back on track: volume and brightness (and similar - lid
>> close etc) events clearly are keypresses.
>>
>> However, I would also argue that a keypress that is acted on by the
>> firmware automatically is *different* from a keypress that hasn't been
>> acted on: one is a "key was pressed *and* hardware did something
>> automatically", and the other is just a "key was pressed" event.
>>
>> IOW, I think the thinkpad issue (and others like it) should be fixed by
>> splitting up the KEY_VOLUMEUP "key" into separate KEY_VOLUMEUP and
>> KEY_VOLUMEUP_NOTIFY key events, so that downstream user mode (and the
>> kernel itself, for that matter) can know whether it's a informational
>> message or whether it should be acted upon.
>
> I agree that these are 2 different events. My argument is that
> "VOLUME_UP_NOTIFY" event is similar to "BATTERY_OUT_NOTIFY",
> "DOCK_UNDOCK_NOTIFY", etc, etc and should be sent not through input
> layer but through a generic (yet to be designed) notification
> mechanism. Something lighter than input. Something like uevents over
> netlink.
absolutely
real life example: hook up one of those fancy usb keyboards with volume buttons to
your thinkpad. The volume keys on the thinkpad do adjust the volume, the ones on
the USB keyboard do not - software needs to be able to distinguish between them,
and sane defaults for these events need to not overlap.
Cheers,
Auke
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/