On Sat, 12 Feb 2000, Kazutaka YOKOTA wrote:
> Both changes have effect only when we fail to attach a serial port,
> which is not the case with your machine...
>
> Hmm. Any idea, Bruce?
The usual (non-AST4) of COM_MULTIPORT is currently broken. This causes
non-working interrupts on all except the master port. I don't know
why this would cause moused to lock up the system, but it can't help.
Patch submitted by Chris Radek <[EMAIL PROTECTED]>:
% diff -u sio.c.orig sio.c
--- sio.c.orig Sun Feb 13 16:59:49 2000
+++ sio.c Sun Feb 13 18:23:22 2000
@@ -692,7 +692,7 @@
idev = dev;
mcr_image = MCR_IENABLE;
#ifdef COM_MULTIPORT
- if (COM_ISMULTIPORT(flags) && !COM_NOTAST4(flags)) {
+ if (COM_ISMULTIPORT(flags)) {
Port_t xiobase;
u_long io;
@@ -702,14 +702,16 @@
device_get_unit(dev), COM_MPMASTER(flags));
idev = dev;
}
- if (bus_get_resource(idev, SYS_RES_IOPORT, 0, &io, NULL) == 0) {
- xiobase = io;
- if (bus_get_resource(idev, SYS_RES_IRQ, 0, NULL, NULL))
- outb(xiobase + com_scr, 0x80); /* no irq */
- else
- outb(xiobase + com_scr, 0);
+ if (!COM_NOTAST4(flags)) {
+ if (bus_get_resource(idev, SYS_RES_IOPORT, 0, &io, NULL) == 0)
+{
+ xiobase = io;
+ if (bus_get_resource(idev, SYS_RES_IRQ, 0, NULL, NULL))
+ outb(xiobase + com_scr, 0x80); /* no irq */
+ else
+ outb(xiobase + com_scr, 0);
+ }
+ mcr_image = 0;
}
- mcr_image = 0;
}
#endif /* COM_MULTIPORT */
if (bus_get_resource(idev, SYS_RES_IRQ, 0, NULL, NULL) != 0)
Bruce
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message