summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/dev/atkbdc/atkbd.c12
-rw-r--r--sys/dev/kbd/atkbd.c12
2 files changed, 24 insertions, 0 deletions
diff --git a/sys/dev/atkbdc/atkbd.c b/sys/dev/atkbdc/atkbd.c
index 2dc9877..549dc43 100644
--- a/sys/dev/atkbdc/atkbd.c
+++ b/sys/dev/atkbdc/atkbd.c
@@ -1108,6 +1108,17 @@ probe_keyboard(KBDC kbdc, int flags)
test_kbd_port(kbdc);
err = get_kbd_echo(kbdc);
+
+ /*
+ * Even if the keyboard doesn't seem to be present (err != 0),
+ * we shall enable the keyboard port and interrupt so that
+ * the driver will be operable when the keyboard is attached
+ * to the system later. It is NOT recommended to hot-plug
+ * the AT keyboard, but many people do so...
+ */
+ kbdc_set_device_mask(kbdc, m | KBD_KBD_CONTROL_BITS);
+ setup_kbd_port(kbdc, TRUE, TRUE);
+#if 0
if (err == 0) {
kbdc_set_device_mask(kbdc, m | KBD_KBD_CONTROL_BITS);
} else {
@@ -1115,6 +1126,7 @@ probe_keyboard(KBDC kbdc, int flags)
set_controller_command_byte(kbdc, 0xff, c);
kbdc_set_device_mask(kbdc, m);
}
+#endif
kbdc_lock(kbdc, FALSE);
return err;
diff --git a/sys/dev/kbd/atkbd.c b/sys/dev/kbd/atkbd.c
index 2dc9877..549dc43 100644
--- a/sys/dev/kbd/atkbd.c
+++ b/sys/dev/kbd/atkbd.c
@@ -1108,6 +1108,17 @@ probe_keyboard(KBDC kbdc, int flags)
test_kbd_port(kbdc);
err = get_kbd_echo(kbdc);
+
+ /*
+ * Even if the keyboard doesn't seem to be present (err != 0),
+ * we shall enable the keyboard port and interrupt so that
+ * the driver will be operable when the keyboard is attached
+ * to the system later. It is NOT recommended to hot-plug
+ * the AT keyboard, but many people do so...
+ */
+ kbdc_set_device_mask(kbdc, m | KBD_KBD_CONTROL_BITS);
+ setup_kbd_port(kbdc, TRUE, TRUE);
+#if 0
if (err == 0) {
kbdc_set_device_mask(kbdc, m | KBD_KBD_CONTROL_BITS);
} else {
@@ -1115,6 +1126,7 @@ probe_keyboard(KBDC kbdc, int flags)
set_controller_command_byte(kbdc, 0xff, c);
kbdc_set_device_mask(kbdc, m);
}
+#endif
kbdc_lock(kbdc, FALSE);
return err;
OpenPOWER on IntegriCloud