[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