aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx/acx.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/wl12xx/acx.h')
-rw-r--r--drivers/net/wireless/wl12xx/acx.h91
1 files changed, 87 insertions, 4 deletions
diff --git a/drivers/net/wireless/wl12xx/acx.h b/drivers/net/wireless/wl12xx/acx.h
index 7bd8e4db4a71..4bbaf04f434e 100644
--- a/drivers/net/wireless/wl12xx/acx.h
+++ b/drivers/net/wireless/wl12xx/acx.h
@@ -747,13 +747,23 @@ struct acx_rate_class {
747#define ACX_TX_BASIC_RATE 0 747#define ACX_TX_BASIC_RATE 0
748#define ACX_TX_AP_FULL_RATE 1 748#define ACX_TX_AP_FULL_RATE 1
749#define ACX_TX_RATE_POLICY_CNT 2 749#define ACX_TX_RATE_POLICY_CNT 2
750struct acx_rate_policy { 750struct acx_sta_rate_policy {
751 struct acx_header header; 751 struct acx_header header;
752 752
753 __le32 rate_class_cnt; 753 __le32 rate_class_cnt;
754 struct acx_rate_class rate_class[CONF_TX_MAX_RATE_CLASSES]; 754 struct acx_rate_class rate_class[CONF_TX_MAX_RATE_CLASSES];
755} __packed; 755} __packed;
756 756
757
758#define ACX_TX_AP_MODE_MGMT_RATE 4
759#define ACX_TX_AP_MODE_BCST_RATE 5
760struct acx_ap_rate_policy {
761 struct acx_header header;
762
763 __le32 rate_policy_idx;
764 struct acx_rate_class rate_policy;
765} __packed;
766
757struct acx_ac_cfg { 767struct acx_ac_cfg {
758 struct acx_header header; 768 struct acx_header header;
759 u8 ac; 769 u8 ac;
@@ -1051,6 +1061,59 @@ struct wl1271_acx_ht_information {
1051 u8 padding[3]; 1061 u8 padding[3];
1052} __packed; 1062} __packed;
1053 1063
1064#define RX_BA_WIN_SIZE 8
1065
1066struct wl1271_acx_ba_session_policy {
1067 struct acx_header header;
1068 /*
1069 * Specifies role Id, Range 0-7, 0xFF means ANY role.
1070 * Future use. For now this field is irrelevant
1071 */
1072 u8 role_id;
1073 /*
1074 * Specifies Link Id, Range 0-31, 0xFF means ANY Link Id.
1075 * Not applicable if Role Id is set to ANY.
1076 */
1077 u8 link_id;
1078
1079 u8 tid;
1080
1081 u8 enable;
1082
1083 /* Windows size in number of packets */
1084 u16 win_size;
1085
1086 /*
1087 * As initiator inactivity timeout in time units(TU) of 1024us.
1088 * As receiver reserved
1089 */
1090 u16 inactivity_timeout;
1091
1092 /* Initiator = 1/Receiver = 0 */
1093 u8 ba_direction;
1094
1095 u8 padding[3];
1096} __packed;
1097
1098struct wl1271_acx_ba_receiver_setup {
1099 struct acx_header header;
1100
1101 /* Specifies Link Id, Range 0-31, 0xFF means ANY Link Id */
1102 u8 link_id;
1103
1104 u8 tid;
1105
1106 u8 enable;
1107
1108 u8 padding[1];
1109
1110 /* Windows size in number of packets */
1111 u16 win_size;
1112
1113 /* BA session starting sequence number. RANGE 0-FFF */
1114 u16 ssn;
1115} __packed;
1116
1054struct wl1271_acx_fw_tsf_information { 1117struct wl1271_acx_fw_tsf_information {
1055 struct acx_header header; 1118 struct acx_header header;
1056 1119
@@ -1062,6 +1125,17 @@ struct wl1271_acx_fw_tsf_information {
1062 u8 padding[3]; 1125 u8 padding[3];
1063} __packed; 1126} __packed;
1064 1127
1128struct wl1271_acx_max_tx_retry {
1129 struct acx_header header;
1130
1131 /*
1132 * the number of frames transmission failures before
1133 * issuing the aging event.
1134 */
1135 __le16 max_tx_retry;
1136 u8 padding_1[2];
1137} __packed;
1138
1065enum { 1139enum {
1066 ACX_WAKE_UP_CONDITIONS = 0x0002, 1140 ACX_WAKE_UP_CONDITIONS = 0x0002,
1067 ACX_MEM_CFG = 0x0003, 1141 ACX_MEM_CFG = 0x0003,
@@ -1113,12 +1187,13 @@ enum {
1113 ACX_RSSI_SNR_WEIGHTS = 0x0052, 1187 ACX_RSSI_SNR_WEIGHTS = 0x0052,
1114 ACX_KEEP_ALIVE_MODE = 0x0053, 1188 ACX_KEEP_ALIVE_MODE = 0x0053,
1115 ACX_SET_KEEP_ALIVE_CONFIG = 0x0054, 1189 ACX_SET_KEEP_ALIVE_CONFIG = 0x0054,
1116 ACX_BA_SESSION_RESPONDER_POLICY = 0x0055, 1190 ACX_BA_SESSION_POLICY_CFG = 0x0055,
1117 ACX_BA_SESSION_INITIATOR_POLICY = 0x0056, 1191 ACX_BA_SESSION_RX_SETUP = 0x0056,
1118 ACX_PEER_HT_CAP = 0x0057, 1192 ACX_PEER_HT_CAP = 0x0057,
1119 ACX_HT_BSS_OPERATION = 0x0058, 1193 ACX_HT_BSS_OPERATION = 0x0058,
1120 ACX_COEX_ACTIVITY = 0x0059, 1194 ACX_COEX_ACTIVITY = 0x0059,
1121 ACX_SET_DCO_ITRIM_PARAMS = 0x0061, 1195 ACX_SET_DCO_ITRIM_PARAMS = 0x0061,
1196 ACX_MAX_TX_FAILURE = 0x0072,
1122 DOT11_RX_MSDU_LIFE_TIME = 0x1004, 1197 DOT11_RX_MSDU_LIFE_TIME = 0x1004,
1123 DOT11_CUR_TX_PWR = 0x100D, 1198 DOT11_CUR_TX_PWR = 0x100D,
1124 DOT11_RX_DOT11_MODE = 0x1012, 1199 DOT11_RX_DOT11_MODE = 0x1012,
@@ -1160,7 +1235,9 @@ int wl1271_acx_set_preamble(struct wl1271 *wl, enum acx_preamble_type preamble);
1160int wl1271_acx_cts_protect(struct wl1271 *wl, 1235int wl1271_acx_cts_protect(struct wl1271 *wl,
1161 enum acx_ctsprotect_type ctsprotect); 1236 enum acx_ctsprotect_type ctsprotect);
1162int wl1271_acx_statistics(struct wl1271 *wl, struct acx_statistics *stats); 1237int wl1271_acx_statistics(struct wl1271 *wl, struct acx_statistics *stats);
1163int wl1271_acx_rate_policies(struct wl1271 *wl); 1238int wl1271_acx_sta_rate_policies(struct wl1271 *wl);
1239int wl1271_acx_ap_rate_policy(struct wl1271 *wl, struct conf_tx_rate_class *c,
1240 u8 idx);
1164int wl1271_acx_ac_cfg(struct wl1271 *wl, u8 ac, u8 cw_min, u16 cw_max, 1241int wl1271_acx_ac_cfg(struct wl1271 *wl, u8 ac, u8 cw_min, u16 cw_max,
1165 u8 aifsn, u16 txop); 1242 u8 aifsn, u16 txop);
1166int wl1271_acx_tid_cfg(struct wl1271 *wl, u8 queue_id, u8 channel_type, 1243int wl1271_acx_tid_cfg(struct wl1271 *wl, u8 queue_id, u8 channel_type,
@@ -1185,6 +1262,12 @@ int wl1271_acx_set_ht_capabilities(struct wl1271 *wl,
1185 bool allow_ht_operation); 1262 bool allow_ht_operation);
1186int wl1271_acx_set_ht_information(struct wl1271 *wl, 1263int wl1271_acx_set_ht_information(struct wl1271 *wl,
1187 u16 ht_operation_mode); 1264 u16 ht_operation_mode);
1265int wl1271_acx_set_ba_session(struct wl1271 *wl,
1266 enum ieee80211_back_parties direction,
1267 u8 tid_index, u8 policy);
1268int wl1271_acx_set_ba_receiver_session(struct wl1271 *wl, u8 tid_index, u16 ssn,
1269 bool enable);
1188int wl1271_acx_tsf_info(struct wl1271 *wl, u64 *mactime); 1270int wl1271_acx_tsf_info(struct wl1271 *wl, u64 *mactime);
1271int wl1271_acx_max_tx_retry(struct wl1271 *wl);
1189 1272
1190#endif /* __WL1271_ACX_H__ */ 1273#endif /* __WL1271_ACX_H__ */