From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=35115 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PoxsI-0004zX-Nz for qemu-devel@nongnu.org; Mon, 14 Feb 2011 07:49:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PoxsD-0004Ad-FP for qemu-devel@nongnu.org; Mon, 14 Feb 2011 07:49:50 -0500 Received: from mail-wy0-f173.google.com ([74.125.82.173]:54445) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PoxsD-0004AD-69 for qemu-devel@nongnu.org; Mon, 14 Feb 2011 07:49:49 -0500 Received: by wyg36 with SMTP id 36so4769850wyg.4 for ; Mon, 14 Feb 2011 04:49:47 -0800 (PST) MIME-Version: 1.0 In-Reply-To: <4D591550.2070801@redhat.com> References: <4D591550.2070801@redhat.com> From: Roy Tam Date: Mon, 14 Feb 2011 20:49:26 +0800 Message-ID: Subject: Re: [Qemu-devel] [PATCH v2] PS/2 keyboard Scancode Set 3 support Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin Wolf Cc: qemu-devel 2011/2/14 Kevin Wolf : > 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 >> -- >> 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 keyc= ode) >> =A0{ >> =A0 =A0 =A0PS2KbdState *s =3D opaque; >> >> - =A0 =A0/* XXX: add support for scancode sets 1 and 3 */ >> - =A0 =A0if (!s->translate && keycode < 0xe0 && s->scancode_set =3D=3D 2= ) >> - =A0 =A0 =A0{ >> + =A0 =A0/* XXX: add support for scancode sets 1 */ >> + =A0 =A0if (!s->translate && keycode < 0xe0 && s->scancode_set > 1) { >> =A0 =A0 =A0 =A0 =A0if (keycode & 0x80) >> =A0 =A0 =A0 =A0 =A0 =A0 =A0ps2_queue(&s->common, 0xf0); >> =A0 =A0 =A0 =A0 =A0keycode =3D ps2_raw_keycode[keycode & 0x7f]; >> - =A0 =A0 =A0} >> + =A0 =A0 =A0 =A0if (s->scancode_set =3D=3D 3) { >> + =A0 =A0 =A0 =A0 =A0 =A0switch (keycode) { >> + =A0 =A0 =A0 =A0 =A0 =A0case 0x1: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0keycode =3D 0x47; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0case 0x3: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0keycode =3D 0x27; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0case 0x4: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0keycode =3D 0x17; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0case 0x5: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0keycode =3D 0x7; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0case 0x6: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0keycode =3D 0xf; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0case 0x7: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0keycode =3D 0x5e; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0case 0x9: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0keycode =3D 0x4f; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0case 0xa: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0keycode =3D 0x3f; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0case 0xb: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0keycode =3D 0x2f; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0case 0xc: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0keycode =3D 0x1f; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0case 0x11: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0keycode =3D 0x19; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0case 0x14: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0keycode =3D 0x11; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0case 0x58: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0keycode =3D 0x14; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0case 0x5d: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0keycode =3D 0x5c; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0case 0x76: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0keycode =3D 0x8; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0case 0x77: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0keycode =3D 0x76; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0case 0x78: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0keycode =3D 0x56; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0case 0x79: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0keycode =3D 0x7c; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0case 0x7b: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0keycode =3D 0x84; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0case 0x7c: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0keycode =3D 0x7e; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0case 0x7e: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0keycode =3D 0x5f; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0case 0x83: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0keycode =3D 0x37; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0case 0x84: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0keycode =3D 0x57; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0} >> + =A0 =A0 =A0 =A0} >> + =A0 =A0} >> =A0 =A0 =A0ps2_queue(&s->common, keycode); >> =A0} > > 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. Roy > > Kevin >