Add a new knob to atkbd(4) to enable typematic rate detection on boot,

which is now disabled by default.  The detection is known to cause hangs
on boot with some new Lenovo laptops on FreeBSD/amd64.

Reported by:	gnn
Discussed with:	jkim
MFC after:	3 months
This commit is contained in:
Xin LI 2011-05-20 22:36:17 +00:00
parent 5b84dc789a
commit dd4aae65f1
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=222152
3 changed files with 10 additions and 1 deletions

View File

@ -26,7 +26,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd January 29, 2008
.Dd May 20, 2011
.Dt ATKBD 4
.Os
.Sh NAME
@ -176,6 +176,11 @@ When this option is given, the
.Nm
driver will not test the keyboard port during the probe routine.
Some machines hang during boot when this test is performed.
.It bit 4 (PROBE_TYPEMATIC)
When this option is given, the
.Nm
driver will try to probe the keyboard typematic rate on boot.
Some machines hang during boot when this test is performed.
.El
.\".Sh FILES
.Sh EXAMPLES

View File

@ -1097,6 +1097,9 @@ get_typematic(keyboard_t *kbd)
x86regs_t regs;
uint8_t *p;
if (!(kbd->kb_config & KB_CONF_PROBE_TYPEMATIC))
return (ENODEV);
if (x86bios_get_intr(0x15) == 0 || x86bios_get_intr(0x16) == 0)
return (ENODEV);

View File

@ -36,6 +36,7 @@
#define KB_CONF_NO_RESET (1 << 1) /* don't reset the keyboard */
#define KB_CONF_ALT_SCANCODESET (1 << 2) /* assume the XT type keyboard */
#define KB_CONF_NO_PROBE_TEST (1 << 3) /* don't test keyboard during probe */
#define KB_CONF_PROBE_TYPEMATIC (1 << 4) /* probe keyboard typematic */
#ifdef _KERNEL