diff options
author | gibbs <gibbs@FreeBSD.org> | 2001-08-17 04:22:50 +0000 |
---|---|---|
committer | gibbs <gibbs@FreeBSD.org> | 2001-08-17 04:22:50 +0000 |
commit | 6e94a734c7ff0d708c59f82fa1f294218ca28730 (patch) | |
tree | a92f038e6b84a813c66138efadca1bc660e02245 /sys | |
parent | 3e8f4794cbe6575dfb40966ade8dca21ab08d644 (diff) | |
download | FreeBSD-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.c | 6 |
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) { |