[laptop-discuss] kb8042 stuff

Garrett D'Amore garrett_damore at tadpole.com
Thu Oct 19 11:04:40 PDT 2006


Sorry for the cross post.

We (Tadpole) have long had our own version of the kb8042 driver, to
handle the internal keyboards on our laptops.  These appear on the
pnpPNP,303 device node, as normal.

With OpenSolaris, the stock kb8042 works almost perfectly.  The only
problem is that we have added key for Sun keys (e.g. Stop, Again, Cut,
Copy, etc.)  which it would be nice if we could continue to support. 
The stock kb8042 driver does not have these mappings.

I would like to consider adding the mappings, either unconditionally
(they don't seem to collide with prexisting mappings for the most part,
module my comments below), or by some other means.  This could be via a
property on the root node (which could either be a boolean value, or it
could be a table of "supplementary mappings").  Alternatively (and much
less desirably), we could add these mappings using some internal API or
ioctl to adjust them.  (Using either a command at early boot, or code in
platmod to use layered DDI ioctls.)

These additions are listed below - note that these are scanset 2 additions:

ps2	usb	name	comments

-------------------------------------------------------

2	120	Stop	already KB8042_STOP, see below
8c	231	R-Meta	old code had /, but new code does not
90	227	L-Meta
91	117	Help
92	121	Again
93	122	Undo
94	124	Copy
95	125	Paste
96	123	Cut
97	118	Props
98	119	Front
99	116	Open
9a	126	Find
9b	74	Home		apparently some tadpole machines

# these are some additional media buttons

a1	205	Play/Pause
a2	182	Prev Track
a3	181	Next Track
a4	183	Stop/Eject
a5	206	Shuffle On/Off
a6	133	Volume up
a7	132	Volume down

e0-2f	101	Compose		collides with 104-key Menu


It looks like there were already some SPARC keyboards with a STOP key,
or maybe someone added this code in for the benefit of Tadpole
platforms. :-)

Mapping for 8c does not collide with current code.  The code indicates
that an earlier version mapped this to "/", but apparently that did not
correlate with the documentation.

We use the mapping that is assigned to the secondary menu key (on
Windows keyboards) for Compose.  I would argue, that as most PS/2
keyboards do not have both a Compose key and a Menu key, that the
Compose mapping is more generally useful (particularly to international
users).  However, I am willing to concede that this particular mapping
could be changed via a supplementary property.

Its also possible that we could #ifdef __sparc these additional
entries.  Few folks are likely to use PS/2 keyboards on SPARC outside of
our customers (although I don't know what our competition uses for
keyboards -- I've seen no indication that they are involved in
OpenSolaris thus far), and this will make life better for lots of users.

So, the question is, how can I get these into the at_keyprocess.c so
that we don't have to continue to ship a custom kb8042 driver?  Which
approach is preferred, and, can I find a sponsor? 

By the way, I _believe_ these mappings hold true for all of our
(Tadpole) platforms (although some platforms might not have some of the
keys, particularly the media related buttons).   The only thing I'm not
sure is whether we have any older platforms that use scanset 3.  I do
not believe this is true, but I'm researching it.  (Our older driver has
support for scanset 3 in it.  But this could just be legacy heritage
from the Solaris 8 sources that it claims as ancestor.)

-- 
Garrett D'Amore, Principal Software Engineer
Tadpole Computer / Computing Technologies Division,
General Dynamics C4 Systems
http://www.tadpolecomputer.com/
Phone: 951 325-2134  Fax: 951 325-2191




More information about the laptop-discuss mailing list