Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem
Conflicts: drivers/net/wireless/iwlwifi/iwl-core.c drivers/net/wireless/rt2x00/rt2x00queue.c drivers/net/wireless/rt2x00/rt2x00queue.h
This commit is contained in:
@@ -228,6 +228,7 @@ struct sta_info *sta_info_alloc(struct ieee80211_sub_if_data *sdata,
|
||||
{
|
||||
struct ieee80211_local *local = sdata->local;
|
||||
struct sta_info *sta;
|
||||
struct timespec uptime;
|
||||
int i;
|
||||
|
||||
sta = kzalloc(sizeof(*sta) + local->hw.sta_data_size, gfp);
|
||||
@@ -245,6 +246,8 @@ struct sta_info *sta_info_alloc(struct ieee80211_sub_if_data *sdata,
|
||||
sta->sdata = sdata;
|
||||
sta->last_rx = jiffies;
|
||||
|
||||
do_posix_clock_monotonic_gettime(&uptime);
|
||||
sta->last_connected = uptime.tv_sec;
|
||||
ewma_init(&sta->avg_signal, 1024, 8);
|
||||
|
||||
if (sta_prepare_rate_control(local, sta, gfp)) {
|
||||
@@ -609,7 +612,8 @@ static bool sta_info_cleanup_expire_buffered(struct ieee80211_local *local,
|
||||
#endif
|
||||
dev_kfree_skb(skb);
|
||||
|
||||
if (skb_queue_empty(&sta->ps_tx_buf))
|
||||
if (skb_queue_empty(&sta->ps_tx_buf) &&
|
||||
!test_sta_flags(sta, WLAN_STA_PS_DRIVER_BUF))
|
||||
sta_info_clear_tim_bit(sta);
|
||||
}
|
||||
|
||||
@@ -893,6 +897,7 @@ void ieee80211_sta_ps_deliver_wakeup(struct sta_info *sta)
|
||||
struct ieee80211_local *local = sdata->local;
|
||||
int sent, buffered;
|
||||
|
||||
clear_sta_flags(sta, WLAN_STA_PS_DRIVER_BUF);
|
||||
if (!(local->hw.flags & IEEE80211_HW_AP_LINK_PS))
|
||||
drv_sta_notify(local, sdata, STA_NOTIFY_AWAKE, &sta->sta);
|
||||
|
||||
@@ -985,3 +990,12 @@ void ieee80211_sta_block_awake(struct ieee80211_hw *hw,
|
||||
ieee80211_queue_work(hw, &sta->drv_unblock_wk);
|
||||
}
|
||||
EXPORT_SYMBOL(ieee80211_sta_block_awake);
|
||||
|
||||
void ieee80211_sta_set_tim(struct ieee80211_sta *pubsta)
|
||||
{
|
||||
struct sta_info *sta = container_of(pubsta, struct sta_info, sta);
|
||||
|
||||
set_sta_flags(sta, WLAN_STA_PS_DRIVER_BUF);
|
||||
sta_info_set_tim_bit(sta);
|
||||
}
|
||||
EXPORT_SYMBOL(ieee80211_sta_set_tim);
|
||||
|
Reference in New Issue
Block a user