diff options
| author | Bill Paul <wpaul@FreeBSD.org> | 2001-05-10 17:17:24 +0000 |
|---|---|---|
| committer | Bill Paul <wpaul@FreeBSD.org> | 2001-05-10 17:17:24 +0000 |
| commit | d639723b88119ccb4d22d53fd9bab8de7c038068 (patch) | |
| tree | f9710b64b879eb2e4b51d971d8423f3a948724d3 /sys/dev | |
| parent | 0a39318247e0ad685495c85069220460fffedb27 (diff) | |
Notes
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/wi/if_wi.c | 8 |
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); |
