From a200774b41d578763b0c9f74156a39dc6ff03198 Mon Sep 17 00:00:00 2001 From: YONETANI Tomokazu Date: Sun, 22 Apr 2007 10:54:43 +0000 Subject: [PATCH] Put a DELAY in the AT-style keyboard detection loop to wait certain amount of time without relying on ISA bus timing. Suggested-by: Matt DragonFly-Bug: http://bugs.dragonflybsd.org/issue573 --- sys/dev/misc/atkbdc_layer/atkbdc_isa.c | 3 ++- sys/dev/misc/kbd/atkbdc.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/dev/misc/atkbdc_layer/atkbdc_isa.c b/sys/dev/misc/atkbdc_layer/atkbdc_isa.c index df76e8b5f1..14568337d9 100644 --- a/sys/dev/misc/atkbdc_layer/atkbdc_isa.c +++ b/sys/dev/misc/atkbdc_layer/atkbdc_isa.c @@ -24,7 +24,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/isa/atkbdc_isa.c,v 1.14.2.1 2000/03/31 12:52:05 yokota Exp $ - * $DragonFly: src/sys/dev/misc/atkbdc_layer/atkbdc_isa.c,v 1.8 2007/04/22 10:43:00 y0netan1 Exp $ + * $DragonFly: src/sys/dev/misc/atkbdc_layer/atkbdc_isa.c,v 1.9 2007/04/22 10:54:42 y0netan1 Exp $ */ #include "opt_kbd.h" @@ -145,6 +145,7 @@ atkbdc_probe(device_t dev) for (i = 65536; i != 0; --i) { if ((bus_space_read_1(tag, ioh1, 0) & 0x2) == 0) break; + DELAY(16); } if (i == 0) { bus_release_resource(dev, SYS_RES_IOPORT, 0, port0); diff --git a/sys/dev/misc/kbd/atkbdc.c b/sys/dev/misc/kbd/atkbdc.c index c3e579e8fb..48e2da0dde 100644 --- a/sys/dev/misc/kbd/atkbdc.c +++ b/sys/dev/misc/kbd/atkbdc.c @@ -28,7 +28,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/dev/kbd/atkbdc.c,v 1.5.2.2 2002/03/31 11:02:02 murray Exp $ - * $DragonFly: src/sys/dev/misc/kbd/atkbdc.c,v 1.10 2007/04/22 10:43:00 y0netan1 Exp $ + * $DragonFly: src/sys/dev/misc/kbd/atkbdc.c,v 1.11 2007/04/22 10:54:43 y0netan1 Exp $ * from kbdio.c,v 1.13 1998/09/25 11:55:46 yokota Exp */ @@ -179,6 +179,7 @@ atkbdc_configure(void) for (i = 65536; i != 0; --i) { if ((bus_space_read_1(tag, h1, 0) & 0x2) == 0) break; + DELAY(16); } if (i == 0) return ENXIO; -- 2.11.4.GIT