svn commit: r280118 - head/sys/dev/wpi
Adrian Chadd
adrian at FreeBSD.org
Sun Mar 15 21:29:38 UTC 2015
Author: adrian
Date: Sun Mar 15 21:29:36 2015
New Revision: 280118
URL: https://svnweb.freebsd.org/changeset/base/280118
Log:
Fix scan timeouts with powersave enabled.
PR: kern/197143
Submitted by: Andriy Voskoboinyk <s3erios at gmail.com>
Modified:
head/sys/dev/wpi/if_wpi.c
Modified: head/sys/dev/wpi/if_wpi.c
==============================================================================
--- head/sys/dev/wpi/if_wpi.c Sun Mar 15 21:29:20 2015 (r280117)
+++ head/sys/dev/wpi/if_wpi.c Sun Mar 15 21:29:36 2015 (r280118)
@@ -1658,6 +1658,15 @@ wpi_newstate(struct ieee80211vap *vap, e
ieee80211_state_name[vap->iv_state],
ieee80211_state_name[nstate]);
+ if (vap->iv_state == IEEE80211_S_RUN && nstate != IEEE80211_S_RUN) {
+ if ((error = wpi_set_pslevel(sc, 0, 0, 1)) != 0) {
+ device_printf(sc->sc_dev,
+ "%s: could not set power saving level\n",
+ __func__);
+ return error;
+ }
+ }
+
switch (nstate) {
case IEEE80211_S_SCAN:
WPI_RXON_LOCK(sc);
@@ -4326,8 +4335,6 @@ wpi_run(struct wpi_softc *sc, struct iee
if ((vap->iv_flags & IEEE80211_F_PMGTON) &&
vap->iv_opmode != IEEE80211_M_IBSS)
(void)wpi_set_pslevel(sc, 0, 3, 1);
- else
- (void)wpi_set_pslevel(sc, 0, 0, 1);
DPRINTF(sc, WPI_DEBUG_TRACE, TRACE_STR_END, __func__);
More information about the svn-src-all
mailing list