summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/dev/atkbdc/atkbd.c3
-rw-r--r--sys/dev/atkbdc/atkbdreg.h1
-rw-r--r--sys/dev/kbd/atkbd.c3
-rw-r--r--sys/dev/kbd/atkbdreg.h1
4 files changed, 6 insertions, 2 deletions
diff --git a/sys/dev/atkbdc/atkbd.c b/sys/dev/atkbdc/atkbd.c
index 5d6822e..1335bc6 100644
--- a/sys/dev/atkbdc/atkbd.c
+++ b/sys/dev/atkbdc/atkbd.c
@@ -1117,7 +1117,8 @@ probe_keyboard(KBDC kbdc, int flags)
* to set the command byte to particular values.
*/
test_controller(kbdc);
- test_kbd_port(kbdc);
+ if (!(flags & KB_CONF_NO_PROBE_TEST))
+ test_kbd_port(kbdc);
err = get_kbd_echo(kbdc);
diff --git a/sys/dev/atkbdc/atkbdreg.h b/sys/dev/atkbdc/atkbdreg.h
index 4ae93e3..f60e48c 100644
--- a/sys/dev/atkbdc/atkbdreg.h
+++ b/sys/dev/atkbdc/atkbdreg.h
@@ -35,6 +35,7 @@
#define KB_CONF_FAIL_IF_NO_KBD (1 << 0) /* don't install if no kbd is found */
#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 */
#ifdef _KERNEL
diff --git a/sys/dev/kbd/atkbd.c b/sys/dev/kbd/atkbd.c
index 5d6822e..1335bc6 100644
--- a/sys/dev/kbd/atkbd.c
+++ b/sys/dev/kbd/atkbd.c
@@ -1117,7 +1117,8 @@ probe_keyboard(KBDC kbdc, int flags)
* to set the command byte to particular values.
*/
test_controller(kbdc);
- test_kbd_port(kbdc);
+ if (!(flags & KB_CONF_NO_PROBE_TEST))
+ test_kbd_port(kbdc);
err = get_kbd_echo(kbdc);
diff --git a/sys/dev/kbd/atkbdreg.h b/sys/dev/kbd/atkbdreg.h
index 4ae93e3..f60e48c 100644
--- a/sys/dev/kbd/atkbdreg.h
+++ b/sys/dev/kbd/atkbdreg.h
@@ -35,6 +35,7 @@
#define KB_CONF_FAIL_IF_NO_KBD (1 << 0) /* don't install if no kbd is found */
#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 */
#ifdef _KERNEL
OpenPOWER on IntegriCloud