summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorgibbs <gibbs@FreeBSD.org>2001-08-17 04:22:50 +0000
committergibbs <gibbs@FreeBSD.org>2001-08-17 04:22:50 +0000
commit6e94a734c7ff0d708c59f82fa1f294218ca28730 (patch)
treea92f038e6b84a813c66138efadca1bc660e02245 /sys
parent3e8f4794cbe6575dfb40966ade8dca21ab08d644 (diff)
downloadFreeBSD-src-6e94a734c7ff0d708c59f82fa1f294218ca28730.zip
FreeBSD-src-6e94a734c7ff0d708c59f82fa1f294218ca28730.tar.gz
Restore initialization of ahc->unpause lost in rev 1.76. ahc->unpause
should be initialized to 0 for PCI adapters which was a side-effect of the memset in ahc_alloc(). EISA/VL adapters require our unpause value to include the "levelness" of our interrupt. This change allows EISA adapters to work again. PR: 29689, 29471
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/aic7xxx/aic7xxx.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/aic7xxx/aic7xxx.c b/sys/dev/aic7xxx/aic7xxx.c
index 88a4b1d..3739a3c 100644
--- a/sys/dev/aic7xxx/aic7xxx.c
+++ b/sys/dev/aic7xxx/aic7xxx.c
@@ -3502,8 +3502,10 @@ ahc_softc_init(struct ahc_softc *ahc)
{
/* The IRQMS bit is only valid on VL and EISA chips */
- if ((ahc->chip & AHC_PCI) != 0)
- ahc->unpause &= ~IRQMS;
+ if ((ahc->chip & AHC_PCI) == 0)
+ ahc->unpause = ahc_inb(ahc, HCNTRL) & IRQMS;
+ else
+ ahc->unpause = 0;
ahc->pause = ahc->unpause | PAUSE;
/* XXX The shared scb data stuff should be deprecated */
if (ahc->scb_data == NULL) {
OpenPOWER on IntegriCloud