aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/driver-ops.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2011-09-29 10:04:38 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-09-30 15:57:21 -0400
commit40b96408831f038b1a6b45e8b22cd050f82a3896 (patch)
treec8ea29b9d01ba28d484cf2d4c4a0cd576d598b79 /net/mac80211/driver-ops.h
parent5bade101eceedb716e39bd35b2928c465e3fbd10 (diff)
mac80211: explicitly notify drivers of frame release
iwlwifi needs to know the number of frames that are going to be sent to a station while it is asleep so it can properly handle the uCode blocking of that station. Before uAPSD, we got by by telling the device that a single frame was going to be released whenever we encountered IEEE80211_TX_CTL_POLL_RESPONSE. With uAPSD, however, that is no longer possible since there could be more than a single frame. To support this model, add a new callback to notify drivers when frames are going to be released. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/driver-ops.h')
-rw-r--r--net/mac80211/driver-ops.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/net/mac80211/driver-ops.h b/net/mac80211/driver-ops.h
index 8fa0d2edf54c..68721d379fe1 100644
--- a/net/mac80211/driver-ops.h
+++ b/net/mac80211/driver-ops.h
@@ -685,4 +685,19 @@ drv_release_buffered_frames(struct ieee80211_local *local,
685 more_data); 685 more_data);
686 trace_drv_return_void(local); 686 trace_drv_return_void(local);
687} 687}
688
689static inline void
690drv_allow_buffered_frames(struct ieee80211_local *local,
691 struct sta_info *sta, u16 tids, int num_frames,
692 enum ieee80211_frame_release_type reason,
693 bool more_data)
694{
695 trace_drv_allow_buffered_frames(local, &sta->sta, tids, num_frames,
696 reason, more_data);
697 if (local->ops->allow_buffered_frames)
698 local->ops->allow_buffered_frames(&local->hw, &sta->sta,
699 tids, num_frames, reason,
700 more_data);
701 trace_drv_return_void(local);
702}
688#endif /* __MAC80211_DRIVER_OPS */ 703#endif /* __MAC80211_DRIVER_OPS */