aboutsummaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorBill Paul <wpaul@FreeBSD.org>2001-05-10 17:17:24 +0000
committerBill Paul <wpaul@FreeBSD.org>2001-05-10 17:17:24 +0000
commitd639723b88119ccb4d22d53fd9bab8de7c038068 (patch)
treef9710b64b879eb2e4b51d971d8423f3a948724d3 /sys/dev
parent0a39318247e0ad685495c85069220460fffedb27 (diff)
Notes
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/wi/if_wi.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/dev/wi/if_wi.c b/sys/dev/wi/if_wi.c
index db2b95176b5d..ea33e57c3b96 100644
--- a/sys/dev/wi/if_wi.c
+++ b/sys/dev/wi/if_wi.c
@@ -426,9 +426,15 @@ wi_generic_attach(device_t dev)
/* Reset the NIC. */
wi_reset(sc);
- /* Read the station address. */
+ /*
+ * Read the station address.
+ * And do it twice. I've seen PRISM-based cards that return
+ * an error when trying to read it the first time, which causes
+ * the probe to fail.
+ */
mac.wi_type = WI_RID_MAC_NODE;
mac.wi_len = 4;
+ wi_read_record(sc, (struct wi_ltv_gen *)&mac));
if ((error = wi_read_record(sc, (struct wi_ltv_gen *)&mac)) != 0) {
device_printf(dev, "mac read failed %d\n", error);
wi_free(dev);