Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 May 1997 19:00:02 -0700 (PDT)
From:      Bruce Evans <bde@zeta.org.au>
To:        freebsd-bugs
Subject:   Re: kern/3395: sio2: not found, but there
Message-ID:  <199705060200.TAA05834@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/3395; it has been noted by GNATS.

From: Bruce Evans <bde@zeta.org.au>
To: dmm125@bellatlantic.net, freebsd-gnats-submit@freebsd.org
Cc:  Subject: Re: kern/3395: sio2: not found, but there
Date: Tue, 6 May 1997 11:48:28 +1000

 >>Fix:
 >in /sys/i386/isa/sio.c, apply this patch:
 >
 >DELAY(10000);           /* Some internal modems need this time */
 >        if (idev->id_irq != 0)
 >-                failures[3] = isa_irq_pending(idev) ? 0 : 1;
 >+                failures[3] = isa_irq_pending(idev) ? 1 : 0;
 >        failures[4] = (inb(iobase + com_iir) & IIR_IMASK) - IIR_TXRDY;
 >
 >Anyhow, this is what my sio.c said.  In the above at '-', it is implying
 >that probe test 3 will fail if there is no irq pending, which is
 >the opposite of what we want.       
 
 Normally there is an irq pending.  Reversing the test would break it for
 few hundred thousand sio ports where it usually works :-).  For a better
 work around, just ignore the result of the test.  isa_irq_pending() has
 no side effects, so you could omit the whole test in this case, but some
 of the other tests have side effects, so it is simplest to set failures[N]
 back to 0 if test N doesn't work (or do all the tests and ignore all the
 results).
 
 If you have other sio ports, then you should configure them even if you
 don't use them, since their IRQs may conflict.
 
 Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199705060200.TAA05834>