aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/aic7xxx
diff options
context:
space:
mode:
authorJustin T. Gibbs <gibbs@FreeBSD.org>2001-08-17 04:22:50 +0000
committerJustin T. Gibbs <gibbs@FreeBSD.org>2001-08-17 04:22:50 +0000
commit937b771c8cd9a7f5bed7209a0eb0073a504c6808 (patch)
treea92f038e6b84a813c66138efadca1bc660e02245 /sys/dev/aic7xxx
parent0ecd57ad0b850588881bb0fd4789a7ed6713b98b (diff)
downloadsrc-937b771c8cd9a7f5bed7209a0eb0073a504c6808.tar.gz
src-937b771c8cd9a7f5bed7209a0eb0073a504c6808.zip
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
Notes
Notes: svn path=/head/; revision=81809
Diffstat (limited to 'sys/dev/aic7xxx')
-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 88a4b1d5a6c3..3739a3cd134f 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) {