summaryrefslogtreecommitdiffstats
path: root/sys/dev/ed/if_ed_3c503.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/ed/if_ed_3c503.c')
-rw-r--r--sys/dev/ed/if_ed_3c503.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/dev/ed/if_ed_3c503.c b/sys/dev/ed/if_ed_3c503.c
index 491c134..d7ab2f2 100644
--- a/sys/dev/ed/if_ed_3c503.c
+++ b/sys/dev/ed/if_ed_3c503.c
@@ -217,7 +217,11 @@ ed_probe_3Com(device_t dev, int port_rid, int flags)
/*
* select page 0 registers
*/
- ed_nic_outb(sc, ED_P0_CR, ED_CR_RD2 | ED_CR_STP);
+ ed_nic_barrier(sc, ED_P0_CR, 1,
+ BUS_SPACE_BARRIER_READ | BUS_SPACE_BARRIER_WRITE);
+ ed_nic_outb(sc, ED_P0_CR, ED_CR_PAGE_0 | ED_CR_RD2 | ED_CR_STP);
+ ed_nic_barrier(sc, ED_P0_CR, 1,
+ BUS_SPACE_BARRIER_READ | BUS_SPACE_BARRIER_WRITE);
/*
* Attempt to clear WTS bit. If it doesn't clear, then this is a 16bit
@@ -228,7 +232,11 @@ ed_probe_3Com(device_t dev, int port_rid, int flags)
/*
* select page 2 registers
*/
+ ed_nic_barrier(sc, ED_P0_CR, 1,
+ BUS_SPACE_BARRIER_READ | BUS_SPACE_BARRIER_WRITE);
ed_nic_outb(sc, ED_P0_CR, ED_CR_PAGE_2 | ED_CR_RD2 | ED_CR_STP);
+ ed_nic_barrier(sc, ED_P0_CR, 1,
+ BUS_SPACE_BARRIER_READ | BUS_SPACE_BARRIER_WRITE);
/*
* The 3c503 forces the WTS bit to a one if this is a 16bit board
OpenPOWER on IntegriCloud