diff options
author | imp <imp@FreeBSD.org> | 2001-08-16 17:30:55 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 2001-08-16 17:30:55 +0000 |
commit | c0669fbb6c5ec5393c0345765ef15a7cc46732ce (patch) | |
tree | 9487aaac9eb4ef4601003c350cb6ef968f3cff73 /sys/isa/sio.c | |
parent | 6599cbcf86427906dcc46f66e6e48d6d694f9a23 (diff) | |
download | FreeBSD-src-c0669fbb6c5ec5393c0345765ef15a7cc46732ce.zip FreeBSD-src-c0669fbb6c5ec5393c0345765ef15a7cc46732ce.tar.gz |
Fix the so-called "half-baked-probe" code that I wrote a long time ago
to properly clear the interrupt register on the no error case. Also,
set the mcr register to zero when we find we can't support the chip.
This fixes the hang on sio driver attach problem in the new pci pccard
code that some people have reported. At least on my machine. I'd
like to get this into 4.4.
Submitted by: bde
PR: kern/29742
MFC after: 1 day
Diffstat (limited to 'sys/isa/sio.c')
-rw-r--r-- | sys/isa/sio.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/isa/sio.c b/sys/isa/sio.c index 954ebd4..67ef253 100644 --- a/sys/isa/sio.c +++ b/sys/isa/sio.c @@ -950,11 +950,13 @@ sioprobe(dev, xrid) } else { /* Unknown, Just omit this chip.. XXX */ result = ENXIO; + sio_setreg(com, com_mcr, 0); } } else { /* OK. this is well-known guys */ CLR_FLAG(dev, COM_C_IIR_TXRDYBUG); } + sio_setreg(com, com_ier, 0); sio_setreg(com, com_cfcr, CFCR_8BITS); mtx_unlock_spin(&sio_lock); bus_release_resource(dev, SYS_RES_IOPORT, rid, port); |