Forwarded to tech, as nobody seemed to notice this on misc.
-------- Forwarded Message --------
> From: mlambda <[email protected]>
> To: [email protected]
> Subject: Re: Running OpenBSD on an Acer Aspire One 110L netbook
> Date: Tue, 10 Jul 2012 23:52:49 +0200
>
> By the way, are you sure 'pckbd_set_xtscancode' in sys/dev/pckbc/pckbd.c
> is correct?
> This function tries to check for scancode set 3 using
>
>
> cmd[0] = KBC_SETTABLE;
> cmd[1] = 0;
> if (pckbc_poll_cmd(kbctag, kbcslot, cmd, 2, 1, resp,
> 0)) {
> /*
> * query failed, step down to table 2 to be
> * safe.
> */
> #ifdef DEBUG
> printf("pckbd: table 3 verification failed\n");
> #endif
> continue;
> } else if (resp[0] == 3) {
> #ifdef DEBUG
> printf("pckbd: settling on table 3\n");
> #endif
> break;
> }
> #ifdef DEBUG
> else
> printf("pckbd: table \"%x\" != 3, trying 2\n",
> resp[0]);
>
>
> However, http://www.win.tue.nl/~aeb/linux/kbd/scancodes-10.html says:
>
> "The usual PC keyboards are capable of producing three sets of
> scancodes. Writing 0xf0 followed by 1, 2 or 3 to port 0x60 will put the
> keyboard in scancode mode 1, 2 or 3. Writing 0xf0 followed by 0 queries
> the mode, resulting in a scancode byte 43, 41 or 3f from the keyboard."
>
> So "resp[0] == 3" always fails and the code falls back to using scancode
> set 2.