From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Wed, 21 Aug 2002 13:06:34 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Wed, 21 Aug 2002 13:06:34 -0400 Received: from twilight.ucw.cz ([195.39.74.230]:1985 "EHLO twilight.ucw.cz") by vger.kernel.org with ESMTP id ; Wed, 21 Aug 2002 13:06:33 -0400 Date: Wed, 21 Aug 2002 19:10:34 +0200 From: Vojtech Pavlik To: Vojtech Pavlik Cc: torvalds@transmeta.com, linux-kernel@vger.kernel.org Subject: [patch 1/2] Fix shift-pgup problems in i8042.c Message-ID: <20020821191034.A6014@ucw.cz> References: <20020820153813.A13034@ucw.cz> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <20020820153813.A13034@ucw.cz>; from vojtech@suse.cz on Tue, Aug 20, 2002 at 03:38:13PM +0200 Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Hi! You can import this changeset into BK by piping this whole message to: '| bk receive [path to repository]' or apply the patch as usual. 'bk pull bk://linux-input.bkbits.net/linux-input' should work as well. =================================================================== ChangeSet@1.510, 2002-08-21 19:00:13+02:00, vojtech@suse.cz Fix i8042.c to ignore fake key releases generated by AT keyboard in translated set 2. This fixes a problem where shift-pgup, with the pgup released first generated an unknown scancode warning and the shift remained stuck. i8042.c | 4 ++++ 1 files changed, 4 insertions(+) =================================================================== diff -Nru a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c --- a/drivers/input/serio/i8042.c Wed Aug 21 19:00:39 2002 +++ b/drivers/input/serio/i8042.c Wed Aug 21 19:00:39 2002 @@ -54,6 +54,7 @@ static struct serio i8042_aux_port; static unsigned char i8042_initial_ctr; static unsigned char i8042_ctr; +static unsigned char i8042_last_e0; struct timer_list i8042_timer; #ifdef I8042_DEBUG_IO @@ -366,12 +367,15 @@ if (data > 0x7f) { if (test_and_clear_bit(data & 0x7f, i8042_unxlate_seen)) { serio_interrupt(&i8042_kbd_port, 0xf0, dfl); + if (i8042_last_e0 && (data == 0xaa || data == 0xb6)) + set_bit(data & 0x7f, i8042_unxlate_seen); data = i8042_unxlate_table[data & 0x7f]; } } else { set_bit(data, i8042_unxlate_seen); data = i8042_unxlate_table[data]; } + i8042_last_e0 = (data == 0xe0); } serio_interrupt(&i8042_kbd_port, data, dfl); } =================================================================== This BitKeeper patch contains the following changesets: + ## Wrapped with gzip_uu ## begin 664 bkpatch5769 M'XL(`#?'8ST``[54;4_;,!#^7/^*DY`0")J[,&-D56_R,OT.]8+MCKV;RW[GZOSC MS9?3*T(&`SC+N9[(;]+"8$!L6=WR(C,GW.9%J3U;<6UFTG)/E+-FF]HP1.;N MB"8!1G%#8PR31M",4AY2F2$+TS@DF\%.-F/OUJ>,8N3>81,QEL;D/5`OH@C( M?$Q]1H'V^HA]&APAM\%1R:O,02@-JSF*5=BXXV4>7.?*P%@M M72F'>56."CF#12X=N,G5V';GDWI^#`MEJK+ MA08CN!9E)F'!*ZWTQ,6R#<8*VH',N-+M++864X]\AHB&*9++!P60[A]>A"!' M\G;+C%VH0DURZ]5BT1*>5:J5X%J6OI.T*OW-N:[92#"@+(IIW`1.#*Q)L"6" M4R$QI&/,=CG_-:(3%4T0L==$O9;.5N(O%+6B?[7I_P&9A2P($TJ;,.YALK)& MNFL,[#UGC/"UC''Q6TYH1?>L%6:M2-E*?RN"OD*W6JP>IZ?+E[CZ"WE>1#%0 M8BRW2CBK&.=D-X+(>;7V][#@Q@XEOB$709P"(YWUI<9P\"0!]O?A(..6.\$` M+CF'IH&']2@^/+RO[3BS#T?*KM/W7309'V_:U7K9GL+02*D/VZ9)Z.9;MWS2 ?;O"XFT27N_V%BUR*J:EG@QA9)#"FY">W!0:/+P8````` ` end -- Vojtech Pavlik SuSE Labs