summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorDamien Bergamini <damien@cvs.openbsd.org>2008-11-08 10:54:30 +0000
committerDamien Bergamini <damien@cvs.openbsd.org>2008-11-08 10:54:30 +0000
commita94dd2ec93f75926e8c229d0f83b9ba4ef7a17d5 (patch)
tree09292d07881cf718a778c09a8428ac65e44e8f1e /sys
parenta3087f8426a5d780d7d45b8fba030e024e9cfc23 (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.c15
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;