summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/hppa/dev/dino.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/arch/hppa/dev/dino.c b/sys/arch/hppa/dev/dino.c
index 90836648631..7985d91084c 100644
--- a/sys/arch/hppa/dev/dino.c
+++ b/sys/arch/hppa/dev/dino.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dino.c,v 1.5 2004/02/13 20:39:31 mickey Exp $ */
+/* $OpenBSD: dino.c,v 1.6 2004/06/17 05:40:32 mickey Exp $ */
/*
* Copyright (c) 2003 Michael Shalayeff
@@ -194,6 +194,11 @@ dino_conf_write(void *v, pcitag_t tag, int reg, pcireg_t data)
{
struct dino_softc *sc = v;
volatile struct dino_regs *r = sc->sc_regs;
+ pcireg_t data1;
+
+ /* fix coalescing config writes errata by interleaving w/ a read */
+ r->pci_addr = tag | PCI_ID_REG;
+ data1 = r->pci_conf_data;
r->pci_addr = tag | reg;
r->pci_conf_data = htole32(data);