Re: [PATCH] Arrow keys on USB keyboards

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 27 May 2003, Maciej W. Rozycki wrote:
> On Tue, 27 May 2003, Geert Uytterhoeven wrote:
> > >  Hmm, as I've understood that's a 2.4-only problem as 2.5 has it solved
> > > differently.  And I do think the translation really belong to the drivers
> > > that use it -- why can't it be included with the USB keyboard driver or as
> > > a library file?  Why an unrelated driver has to be cluttered? 
> > 
> > It's not really used by a driver, but by the input subsystem itself. You could
> > add the translation to drivers/char/keyboard.c, but then it will break if you
> > use both the input subsystem (e.g. USB keyboard) and some other non-PS/2
> > keyboard driver.
> 
>  I don't understand -- the scancode mapping is specific to a keyboard
> type.  Both PC/AT and USB keyboards may use the same scancodes by chance,
> but others have different ones.  So how can the input subsystem need a
> PC/AT specific mapping?  Adding the table to drivers/char/keyboard.c
> certainly makes no sense as the file is meant to be generic. 

Scancode mapping is indeed specific to the keyboard type.

However, the input subsystem converts Linux input keycodes (cfr.
<linux/input.h>) to PC/AT scancodes, and feeds them to handle_scancode() in
drivers/char/keyboard.c. handle_scancode() calls kbd_translate() to translate
scancodes to keycodes, which is keyboard driver specific.

Since the input subsystem feeds PC/AT scancodes to handle_scancode(),
kbd_translate() needs to know about PC/AT scancodes. For the PS/2 keyboard
driver this is OK, for the dummy keyboard driver this is OK after my patch, but
for any other keyboard driver this will not work.

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds



[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux