diff options
author | Michael Shalayeff <mickey@cvs.openbsd.org> | 2004-06-17 06:06:19 +0000 |
---|---|---|
committer | Michael Shalayeff <mickey@cvs.openbsd.org> | 2004-06-17 06:06:19 +0000 |
commit | b51fcbac7f6bb09a656ed402dde63b554eb43ce1 (patch) | |
tree | 77ff07fe1606ec44c37aa1e6dd9721a3cdbb60fd /sys | |
parent | 4ead9a268dbe5aceee63f4a66fd722ee6399b57a (diff) |
reset both irr's; put a barrier upon imr reset such that icr is reset properly and do it once
Diffstat (limited to 'sys')
-rw-r--r-- | sys/arch/hppa/dev/dino.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/arch/hppa/dev/dino.c b/sys/arch/hppa/dev/dino.c index 7985d91084c..75774a390da 100644 --- a/sys/arch/hppa/dev/dino.c +++ b/sys/arch/hppa/dev/dino.c @@ -1,4 +1,4 @@ -/* $OpenBSD: dino.c,v 1.6 2004/06/17 05:40:32 mickey Exp $ */ +/* $OpenBSD: dino.c,v 1.7 2004/06/17 06:06:18 mickey Exp $ */ /* * Copyright (c) 2003 Michael Shalayeff @@ -245,7 +245,6 @@ dino_intr_establish(void *v, pci_intr_handle_t ih, sc->sc_imr |= (1 << (ih - 1)); else r->imr = sc->sc_imr |= (1 << (ih - 1)); - r->icr &= ~(1 << (ih - 1)); } return (iv); @@ -1487,7 +1486,10 @@ dinoattach(parent, self, aux) s = splhigh(); r->imr = ~0; data = r->irr0; + data = r->irr1; r->imr = 0; + __asm __volatile ("" ::: "memory"); + r->icr = 0; r->iar0 = cpu_gethpa(0) | (31 - ca->ca_irq); splx(s); |