diff options
author | Damien Bergamini <damien@cvs.openbsd.org> | 2008-11-08 10:54:30 +0000 |
---|---|---|
committer | Damien Bergamini <damien@cvs.openbsd.org> | 2008-11-08 10:54:30 +0000 |
commit | a94dd2ec93f75926e8c229d0f83b9ba4ef7a17d5 (patch) | |
tree | 09292d07881cf718a778c09a8428ac65e44e8f1e /sys | |
parent | a3087f8426a5d780d7d45b8fba030e024e9cfc23 (diff) |
major wpi(4) overhaul.
wpi(4) and iwn(4) used to be in sync but with the latest iwn(4)
changes, this was no longer the case. that commit repair this.
it brings HW CCMP encryption/decryption among other things.
requires an update of the wpi-firmware package.
please report any regression you might see.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/pci/if_wpi.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/sys/dev/pci/if_wpi.c b/sys/dev/pci/if_wpi.c index fb8c60fdd37..d65652006da 100644 --- a/sys/dev/pci/if_wpi.c +++ b/sys/dev/pci/if_wpi.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_wpi.c,v 1.64 2008/08/27 09:05:03 damien Exp $ */ +/* $OpenBSD: if_wpi.c,v 1.65 2008/11/08 10:54:29 damien Exp $ */ /*- * Copyright (c) 2006, 2007 @@ -2608,8 +2608,6 @@ wpi_config(struct wpi_softc *sc) sc->config.mode = WPI_MODE_STA; sc->config.filter |= htole32(WPI_FILTER_MULTICAST); break; -#ifndef IEEE80211_STA_ONLY -#ifdef notyet case IEEE80211_M_IBSS: case IEEE80211_M_AHDEMO: sc->config.mode = WPI_MODE_IBSS; @@ -2617,16 +2615,11 @@ wpi_config(struct wpi_softc *sc) case IEEE80211_M_HOSTAP: sc->config.mode = WPI_MODE_HOSTAP; break; -#endif -#endif case IEEE80211_M_MONITOR: sc->config.mode = WPI_MODE_MONITOR; sc->config.filter |= htole32(WPI_FILTER_MULTICAST | WPI_FILTER_CTL | WPI_FILTER_PROMISC); break; - default: - /* should not get there */ - break; } sc->config.cck_mask = 0x0f; /* not yet negotiated */ sc->config.ofdm_mask = 0xff; /* not yet negotiated */ @@ -2732,12 +2725,12 @@ wpi_reset(struct wpi_softc *sc) WPI_WRITE(sc, WPI_GPIO_CTL, tmp | WPI_GPIO_INIT); /* wait for clock stabilization */ - for (ntries = 0; ntries < 25000; ntries++) { + for (ntries = 0; ntries < 1000; ntries++) { if (WPI_READ(sc, WPI_GPIO_CTL) & WPI_GPIO_CLOCK) break; - DELAY(100); + DELAY(10); } - if (ntries == 25000) { + if (ntries == 1000) { printf("%s: timeout waiting for clock stabilization\n", sc->sc_dev.dv_xname); return ETIMEDOUT; |