diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/mac80211/rx.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 68a6e973c72c..14be095b8528 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c | |||
@@ -654,9 +654,13 @@ ieee80211_rx_h_decrypt(struct ieee80211_rx_data *rx) | |||
654 | static void ap_sta_ps_start(struct sta_info *sta) | 654 | static void ap_sta_ps_start(struct sta_info *sta) |
655 | { | 655 | { |
656 | struct ieee80211_sub_if_data *sdata = sta->sdata; | 656 | struct ieee80211_sub_if_data *sdata = sta->sdata; |
657 | struct ieee80211_local *local = sdata->local; | ||
657 | 658 | ||
658 | atomic_inc(&sdata->bss->num_sta_ps); | 659 | atomic_inc(&sdata->bss->num_sta_ps); |
659 | set_and_clear_sta_flags(sta, WLAN_STA_PS, WLAN_STA_PSPOLL); | 660 | set_and_clear_sta_flags(sta, WLAN_STA_PS, WLAN_STA_PSPOLL); |
661 | if (local->ops->sta_notify_ps) | ||
662 | local->ops->sta_notify_ps(local_to_hw(local), STA_NOTIFY_SLEEP, | ||
663 | &sta->sta); | ||
660 | #ifdef CONFIG_MAC80211_VERBOSE_PS_DEBUG | 664 | #ifdef CONFIG_MAC80211_VERBOSE_PS_DEBUG |
661 | printk(KERN_DEBUG "%s: STA %pM aid %d enters power save mode\n", | 665 | printk(KERN_DEBUG "%s: STA %pM aid %d enters power save mode\n", |
662 | sdata->dev->name, sta->sta.addr, sta->sta.aid); | 666 | sdata->dev->name, sta->sta.addr, sta->sta.aid); |
@@ -673,6 +677,9 @@ static int ap_sta_ps_end(struct sta_info *sta) | |||
673 | atomic_dec(&sdata->bss->num_sta_ps); | 677 | atomic_dec(&sdata->bss->num_sta_ps); |
674 | 678 | ||
675 | clear_sta_flags(sta, WLAN_STA_PS | WLAN_STA_PSPOLL); | 679 | clear_sta_flags(sta, WLAN_STA_PS | WLAN_STA_PSPOLL); |
680 | if (local->ops->sta_notify_ps) | ||
681 | local->ops->sta_notify_ps(local_to_hw(local), STA_NOTIFY_AWAKE, | ||
682 | &sta->sta); | ||
676 | 683 | ||
677 | if (!skb_queue_empty(&sta->ps_tx_buf)) | 684 | if (!skb_queue_empty(&sta->ps_tx_buf)) |
678 | sta_info_clear_tim_bit(sta); | 685 | sta_info_clear_tim_bit(sta); |