diff options
Diffstat (limited to 'drivers/net/wireless/mwifiex/11n.h')
-rw-r--r-- | drivers/net/wireless/mwifiex/11n.h | 58 |
1 files changed, 50 insertions, 8 deletions
diff --git a/drivers/net/wireless/mwifiex/11n.h b/drivers/net/wireless/mwifiex/11n.h index 375db01442bf..40b007a00f4b 100644 --- a/drivers/net/wireless/mwifiex/11n.h +++ b/drivers/net/wireless/mwifiex/11n.h | |||
@@ -34,8 +34,8 @@ int mwifiex_cmd_11n_cfg(struct mwifiex_private *priv, | |||
34 | int mwifiex_cmd_append_11n_tlv(struct mwifiex_private *priv, | 34 | int mwifiex_cmd_append_11n_tlv(struct mwifiex_private *priv, |
35 | struct mwifiex_bssdescriptor *bss_desc, | 35 | struct mwifiex_bssdescriptor *bss_desc, |
36 | u8 **buffer); | 36 | u8 **buffer); |
37 | void mwifiex_fill_cap_info(struct mwifiex_private *, u8 radio_type, | 37 | int mwifiex_fill_cap_info(struct mwifiex_private *, u8 radio_type, |
38 | struct mwifiex_ie_types_htcap *); | 38 | struct ieee80211_ht_cap *); |
39 | int mwifiex_set_get_11n_htcap_cfg(struct mwifiex_private *priv, | 39 | int mwifiex_set_get_11n_htcap_cfg(struct mwifiex_private *priv, |
40 | u16 action, int *htcap_cfg); | 40 | u16 action, int *htcap_cfg); |
41 | void mwifiex_11n_delete_tx_ba_stream_tbl_entry(struct mwifiex_private *priv, | 41 | void mwifiex_11n_delete_tx_ba_stream_tbl_entry(struct mwifiex_private *priv, |
@@ -64,14 +64,46 @@ int mwifiex_cmd_amsdu_aggr_ctrl(struct host_cmd_ds_command *cmd, | |||
64 | struct mwifiex_ds_11n_amsdu_aggr_ctrl *aa_ctrl); | 64 | struct mwifiex_ds_11n_amsdu_aggr_ctrl *aa_ctrl); |
65 | void mwifiex_del_tx_ba_stream_tbl_by_ra(struct mwifiex_private *priv, u8 *ra); | 65 | void mwifiex_del_tx_ba_stream_tbl_by_ra(struct mwifiex_private *priv, u8 *ra); |
66 | 66 | ||
67 | /* | ||
68 | * This function checks whether AMPDU is allowed or not for a particular TID. | ||
69 | */ | ||
70 | static inline u8 | 67 | static inline u8 |
71 | mwifiex_is_ampdu_allowed(struct mwifiex_private *priv, int tid) | 68 | mwifiex_is_station_ampdu_allowed(struct mwifiex_private *priv, |
69 | struct mwifiex_ra_list_tbl *ptr, int tid) | ||
72 | { | 70 | { |
73 | return ((priv->aggr_prio_tbl[tid].ampdu_ap != BA_STREAM_NOT_ALLOWED) | 71 | struct mwifiex_sta_node *node = mwifiex_get_sta_entry(priv, ptr->ra); |
74 | ? true : false); | 72 | |
73 | if (unlikely(!node)) | ||
74 | return false; | ||
75 | |||
76 | return (node->ampdu_sta[tid] != BA_STREAM_NOT_ALLOWED) ? true : false; | ||
77 | } | ||
78 | |||
79 | /* This function checks whether AMSDU is allowed for BA stream. */ | ||
80 | static inline u8 | ||
81 | mwifiex_is_amsdu_in_ampdu_allowed(struct mwifiex_private *priv, | ||
82 | struct mwifiex_ra_list_tbl *ptr, int tid) | ||
83 | { | ||
84 | struct mwifiex_tx_ba_stream_tbl *tx_tbl; | ||
85 | |||
86 | tx_tbl = mwifiex_get_ba_tbl(priv, tid, ptr->ra); | ||
87 | if (tx_tbl) | ||
88 | return tx_tbl->amsdu; | ||
89 | |||
90 | return false; | ||
91 | } | ||
92 | |||
93 | /* This function checks whether AMPDU is allowed or not for a particular TID. */ | ||
94 | static inline u8 | ||
95 | mwifiex_is_ampdu_allowed(struct mwifiex_private *priv, | ||
96 | struct mwifiex_ra_list_tbl *ptr, int tid) | ||
97 | { | ||
98 | if (GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_UAP) { | ||
99 | return mwifiex_is_station_ampdu_allowed(priv, ptr, tid); | ||
100 | } else { | ||
101 | if (ptr->tdls_link) | ||
102 | return mwifiex_is_station_ampdu_allowed(priv, ptr, tid); | ||
103 | |||
104 | return (priv->aggr_prio_tbl[tid].ampdu_ap != | ||
105 | BA_STREAM_NOT_ALLOWED) ? true : false; | ||
106 | } | ||
75 | } | 107 | } |
76 | 108 | ||
77 | /* | 109 | /* |
@@ -165,4 +197,14 @@ static inline int mwifiex_is_sta_11n_enabled(struct mwifiex_private *priv, | |||
165 | 197 | ||
166 | return node->is_11n_enabled; | 198 | return node->is_11n_enabled; |
167 | } | 199 | } |
200 | |||
201 | static inline u8 | ||
202 | mwifiex_tdls_peer_11n_enabled(struct mwifiex_private *priv, u8 *ra) | ||
203 | { | ||
204 | struct mwifiex_sta_node *node = mwifiex_get_sta_entry(priv, ra); | ||
205 | if (node) | ||
206 | return node->is_11n_enabled; | ||
207 | |||
208 | return false; | ||
209 | } | ||
168 | #endif /* !_MWIFIEX_11N_H_ */ | 210 | #endif /* !_MWIFIEX_11N_H_ */ |