Am 14.02.2011 13:49, schrieb Roy Tam: > 2011/2/14 Kevin Wolf <kw...@redhat.com>: >> Am 13.02.2011 11:07, schrieb Roy Tam: >>> The following patch adds PS/2 keyboard Scancode Set 3 support. >>> >>> Sign-off-by: Roy Tam <roy...@gmail.com> >>> -- >>> v2: checkpatch.pl style fixes >>> >>> diff --git a/hw/ps2.c b/hw/ps2.c >>> index 762bb00..6bea0ef 100644 >>> --- a/hw/ps2.c >>> +++ b/hw/ps2.c >>> @@ -143,13 +143,85 @@ static void ps2_put_keycode(void *opaque, int keycode) >>> { >>> PS2KbdState *s = opaque; >>> >>> - /* XXX: add support for scancode sets 1 and 3 */ >>> - if (!s->translate && keycode < 0xe0 && s->scancode_set == 2) >>> - { >>> + /* XXX: add support for scancode sets 1 */ >>> + if (!s->translate && keycode < 0xe0 && s->scancode_set > 1) { >>> if (keycode & 0x80) >>> ps2_queue(&s->common, 0xf0); >>> keycode = ps2_raw_keycode[keycode & 0x7f]; >>> - } >>> + if (s->scancode_set == 3) { >>> + switch (keycode) { >>> + case 0x1: >>> + keycode = 0x47; >>> + break; >>> + case 0x3: >>> + keycode = 0x27; >>> + break; >>> + case 0x4: >>> + keycode = 0x17; >>> + break; >>> + case 0x5: >>> + keycode = 0x7; >>> + break; >>> + case 0x6: >>> + keycode = 0xf; >>> + break; >>> + case 0x7: >>> + keycode = 0x5e; >>> + break; >>> + case 0x9: >>> + keycode = 0x4f; >>> + break; >>> + case 0xa: >>> + keycode = 0x3f; >>> + break; >>> + case 0xb: >>> + keycode = 0x2f; >>> + break; >>> + case 0xc: >>> + keycode = 0x1f; >>> + break; >>> + case 0x11: >>> + keycode = 0x19; >>> + break; >>> + case 0x14: >>> + keycode = 0x11; >>> + break; >>> + case 0x58: >>> + keycode = 0x14; >>> + break; >>> + case 0x5d: >>> + keycode = 0x5c; >>> + break; >>> + case 0x76: >>> + keycode = 0x8; >>> + break; >>> + case 0x77: >>> + keycode = 0x76; >>> + break; >>> + case 0x78: >>> + keycode = 0x56; >>> + break; >>> + case 0x79: >>> + keycode = 0x7c; >>> + break; >>> + case 0x7b: >>> + keycode = 0x84; >>> + break; >>> + case 0x7c: >>> + keycode = 0x7e; >>> + break; >>> + case 0x7e: >>> + keycode = 0x5f; >>> + break; >>> + case 0x83: >>> + keycode = 0x37; >>> + break; >>> + case 0x84: >>> + keycode = 0x57; >>> + break; >>> + } >>> + } >>> + } >>> ps2_queue(&s->common, keycode); >>> } >> >> Wouldn't a second table like ps2_raw_keycode be better than a huge >> switch block that translates from scancode set 2 to 3? > > Yeah, but I hate fixing old coding style to newer one. But still, I > will do it for this time. I just wonder why not all sources are > converted to new coding style when new coding style was announced.
Not sure what you're referring to, how is this related to coding style? Kevin