From 24e4ca782844cc50a6bab4265098d610fb96988d Mon Sep 17 00:00:00 2001 From: bde Date: Sun, 25 Feb 1996 21:10:54 +0000 Subject: Added some delays to the probe. This might fix some incompatible UARTs (the ones that take more than a few hundred nsec and less than 1 msec to switch their IRQ output). --- sys/dev/sio/sio.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'sys/dev/sio') diff --git a/sys/dev/sio/sio.c b/sys/dev/sio/sio.c index b868330..f6bf0c5 100644 --- a/sys/dev/sio/sio.c +++ b/sys/dev/sio/sio.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * from: @(#)com.c 7.5 (Berkeley) 5/16/91 - * $Id: sio.c,v 1.133 1996/01/04 21:11:37 wollman Exp $ + * $Id: sio.c,v 1.134 1996/01/25 07:21:36 phk Exp $ */ #include "sio.h" @@ -688,9 +688,11 @@ sioprobe(dev) failures[0] = inb(iobase + com_cfcr) - CFCR_8BITS; failures[1] = inb(iobase + com_ier) - IER_ETXRDY; failures[2] = inb(iobase + com_mcr) - mcr_image; + DELAY(1000); /* XXX */ if (idev->id_irq != 0) failures[3] = isa_irq_pending(idev) ? 0 : 1; failures[4] = (inb(iobase + com_iir) & IIR_IMASK) - IIR_TXRDY; + DELAY(1000); /* XXX */ if (idev->id_irq != 0) failures[5] = isa_irq_pending(idev) ? 1 : 0; failures[6] = (inb(iobase + com_iir) & IIR_IMASK) - IIR_NOPEND; @@ -707,6 +709,7 @@ sioprobe(dev) outb(iobase + com_ier, 0); outb(iobase + com_cfcr, CFCR_8BITS); /* dummy to avoid bus echo */ failures[7] = inb(iobase + com_ier); + DELAY(1000); /* XXX */ if (idev->id_irq != 0) failures[8] = isa_irq_pending(idev) ? 1 : 0; failures[9] = (inb(iobase + com_iir) & IIR_IMASK) - IIR_NOPEND; -- cgit v1.1