Subject: Re: X server on NetBSD/shark 4.0: protocol wskbd, legacy driver
To: Patrick Welche <prlw1@newn.cam.ac.uk>
From: Michael Lorenz <macallan@netbsd.org>
List: port-arm
Date: 01/24/2008 16:03:29
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello,

On Jan 24, 2008, at 13:22, Patrick Welche wrote:

> On Thu, Jan 24, 2008 at 09:45:55AM -0500, Michael wrote:
>> I think I know what's wrong - our PS/2 keyboard driver identifies  
>> itself as
>> an XT keyboard but in event mode ( reading from /dev/wskbd* ) it  
>> translates
>> AT extended scancodes ( that's more or less every key that's  
>> present on an
>> AT keyboard but not an XT one ) to not-really-standard single byte  
>> codes
>> which the kbd driver in X ignores because it expects XT codes and  
>> maybe AT
>> multibyte codes. So what I need to do is to add another  
>> translation table to
>> said driver to deal with those codes. Hopefully that will make  
>> those keys
>> work. Doing the same thing for Xorg will be trivial.
>> Talk about an ancient bug.
>
> I was bemused by the comment in pckbd.c:
>
>      * XXX It would perhaps be a better choice to just use AT scan  
> codes
>      * and not bother with this.
>
> Is that sensible?

Depends. We definitely want one event per keypress, not multiple ones  
like extended AT scancodes. Besides that, we should convert all  
keyboard drivers to report USB keyboard scancodes so we can get rid  
of additional translation tables in X and to make /dev/wskbd useful  
for different kinds of keyboards, like USB and ADB, Sun or PS/2.  
Think of an Apple laptop with ADB keyboard and a USB keypad.

have fun
Michael 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)

iQEVAwUBR5j9IspnzkX8Yg2nAQKK/wf+Ltszb/EpJwuCzH/fGhdXQsTumE9EguYW
8Xc/Vy0gLcVrAalUza4CsZz+E6h4ol7LxmUp8iw+l1uLYhd69eNJ6Unzwi0ZqCVv
eBgSdDZY7COM3Rj6hTVh7lBZ4V41HX10otsU460NErWENF1DoIgV5ubjpbtC81Zz
Gy/aO2Me0SSICl9211nFCGuu1iC/Zbm9qQyIhnomaRPqNxPp9ApCFLO9YZ/JtANi
8VAVNTJndqr0GtBZpJ90Oy80fh1RD0OGtk3u0SOeUgSYlCBndFCkiWuHGI9ZJ8P6
Z1eNXDlbqAyDa8NgxwKSODujkLr0ssfVjIYLEq3fAKmbDpBG6H2k0Q==
=fLF9
-----END PGP SIGNATURE-----