freebsd-skq/sys/dev/atkbdc
sobomax 06a2ddb54d On certain chipsets AT keyboard controller isn't present and is
emulated by BIOS using SMI interrupt. On those chipsets reading
from the status port may be thousand times slower than usually.
Sometimes this emilation is not working properly resulting in
commands timing out and since we assume that inb() operation
takes very little time to complete we need to adjust number of
retries to keep waiting time within a designed limits (100ms).
Measure time it takes to make read_status() call and adjust
number of retries accordingly.

To keep it simple, use TSC to measure inb() performance and
keep it to amd64-only, since TSC may not available on older
CPUs.

Also enable detection of the AT controller absence on amd64.

Reviewed by:	jhb
MFC after:	1 month
2010-04-29 06:16:00 +00:00
..
atkbd_atkbdc.c Remove explicit calls to keyboard methods with their respective variants 2007-12-29 21:55:25 +00:00
atkbd.c Rewrite x86bios and update its dependent drivers. 2009-10-19 20:58:10 +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 On certain chipsets AT keyboard controller isn't present and is 2010-04-29 06:16:00 +00:00
atkbdc_subr.c
atkbdc_subr.h
atkbdc.c On certain chipsets AT keyboard controller isn't present and is 2010-04-29 06:16:00 +00:00
atkbdcreg.h On certain chipsets AT keyboard controller isn't present and is 2010-04-29 06:16:00 +00:00
atkbdreg.h
psm.c Add new "hw.psm.tap_enabled" tunable and sysctl. 2009-12-18 17:46:57 +00:00
psm.h