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.

Reply via email to