[patch 1/2] Fix shift-pgup problems in i8042.c

Vojtech Pavlik (vojtech@suse.cz)
Wed, 21 Aug 2002 19:10:34 +0200


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<G==VZ@1C;$.;-,3@<^4Z;N,U
M=:K8H67*CY_3E@*58*\D413[[IX[^7F>[,&-D56_<UM^MU+D9`\^E<;V.Z8V
MTA,_W/JJ+-W:S\N9]#=9_FCJ*SVO+7'Q2VY%#K>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]&APA<Q^P`P='%+I(WL'_'?J,"/B@EJ!2#)DG'#JHB2XK"6,^
ME3"5=U#)0G(C#4RDEA6W,H/1'9Q>M\%1R:O,02@-JSF*5=BXXV4>7.?*P%@M
M72F'>56."CF#12X=N,G5V';GDWI^#`ME<P=A<PGMQGV_S)56QC[JRC74>JK+
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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/