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


Reply via email to