freebsd-dev/sys/dev/atkbdc
Jung-uk Kim 393ec7ad27 Validate INT 15h and 16h vectors more strictly. Traditionally these entry
points are fixed addresses and (U)EFI CSM specification also mandated that.
Unfortunately, (U)EFI CSM specification does not specifically mention this
is to call service routine via interrupt vector table or to jump directly
to the entry point.  As a result, some CSM seems to install two routines
and acts differently, depending on how it was executed, unfortunately.
When INT 15h is used, it calls a function pointer (which is probably a UEFI
service function).  When it jumps directly to the entry point, it executes
a simple and traditional INT 15h service routine.  Therefore, actually there
are two possible fixes, i. e., this fix or jumping directly to the fixed
entry point.  However, we chose this fix because a) keyboard typematic
support via BIOS is becoming extremely rarer and b) we cannot support random
service routine installed by a firmware or a boot loader.  This should fix
Lenovo X220 laptop, specifically.

Reviewed by:	delphij
MFC after:	3 days
2011-06-06 23:03:37 +00:00
..
atkbd_atkbdc.c - If the atkbdc device is assigned an IRQ resource by ACPI or the PnPBIOS, 2010-12-16 17:14:37 +00:00
atkbd.c Validate INT 15h and 16h vectors more strictly. Traditionally these entry 2011-06-06 23:03:37 +00:00
atkbdc_ebus.c On certain chipsets AT keyboard controller isn't present and is 2010-04-29 06:16:00 +00:00
atkbdc_isa.c Only use the BIOS-supplied IRQ for the atkbdc device for a child atkbd 2010-12-21 12:49:37 +00:00
atkbdc_subr.c
atkbdc_subr.h
atkbdc.c Merge amd64 and i386 bus.h and move the resulting header to x86. Replace 2010-12-20 16:39:43 +00:00
atkbdcreg.h - If the atkbdc device is assigned an IRQ resource by ACPI or the PnPBIOS, 2010-12-16 17:14:37 +00:00
atkbdreg.h Revert r222152. The root cause was analysed and better fix is upcoming. 2011-06-06 22:18:40 +00:00
psm.c - When moving the IRQ resource from the psmcpnp device to the psm device, 2010-12-16 17:08:43 +00:00
psm.h