Deleted Added
full compact
31c31
< __FBSDID("$FreeBSD: head/sys/dev/ath/if_ath.c 240899 2012-09-24 20:35:56Z adrian $");
---
> __FBSDID("$FreeBSD: head/sys/dev/ath/if_ath.c 241170 2012-10-03 23:23:45Z adrian $");
201a202
> static void ath_node_powersave(struct ieee80211_node *, int);
1140a1142,1144
> avp->av_node_ps = vap->iv_node_ps;
> vap->iv_node_ps = ath_node_powersave;
>
5337a5342,5372
> /*
> * Enable/disable power save. This must be called with
> * no TX driver locks currently held, so it should only
> * be called from the RX path (which doesn't hold any
> * TX driver locks.)
> */
> static void
> ath_node_powersave(struct ieee80211_node *ni, int enable)
> {
> struct ath_node *an = ATH_NODE(ni);
> struct ieee80211com *ic = ni->ni_ic;
> struct ath_softc *sc = ic->ic_ifp->if_softc;
> struct ath_vap *avp = ATH_VAP(ni->ni_vap);
>
> ATH_NODE_UNLOCK_ASSERT(an);
> /* XXX and no TXQ locks should be held here */
>
> DPRINTF(sc, ATH_DEBUG_NODE_PWRSAVE, "%s: ni=%p, enable=%d\n",
> __func__, ni, enable);
>
> /* Suspend or resume software queue handling */
> if (enable)
> ath_tx_node_sleep(sc, an);
> else
> ath_tx_node_wakeup(sc, an);
>
> /* Update net80211 state */
> avp->av_node_ps(ni, enable);
> }
>
>