diff options
Diffstat (limited to 'drivers/net/wireless/wl12xx/acx.h')
-rw-r--r-- | drivers/net/wireless/wl12xx/acx.h | 91 |
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 |
750 | struct acx_rate_policy { | 750 | struct 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 | ||
760 | struct 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 | |||
757 | struct acx_ac_cfg { | 767 | struct 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 | |||
1066 | struct 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 | |||
1098 | struct 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 | |||
1054 | struct wl1271_acx_fw_tsf_information { | 1117 | struct 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 | ||
1128 | struct 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 | |||
1065 | enum { | 1139 | enum { |
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); | |||
1160 | int wl1271_acx_cts_protect(struct wl1271 *wl, | 1235 | int wl1271_acx_cts_protect(struct wl1271 *wl, |
1161 | enum acx_ctsprotect_type ctsprotect); | 1236 | enum acx_ctsprotect_type ctsprotect); |
1162 | int wl1271_acx_statistics(struct wl1271 *wl, struct acx_statistics *stats); | 1237 | int wl1271_acx_statistics(struct wl1271 *wl, struct acx_statistics *stats); |
1163 | int wl1271_acx_rate_policies(struct wl1271 *wl); | 1238 | int wl1271_acx_sta_rate_policies(struct wl1271 *wl); |
1239 | int wl1271_acx_ap_rate_policy(struct wl1271 *wl, struct conf_tx_rate_class *c, | ||
1240 | u8 idx); | ||
1164 | int wl1271_acx_ac_cfg(struct wl1271 *wl, u8 ac, u8 cw_min, u16 cw_max, | 1241 | int 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); |
1166 | int wl1271_acx_tid_cfg(struct wl1271 *wl, u8 queue_id, u8 channel_type, | 1243 | int 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); |
1186 | int wl1271_acx_set_ht_information(struct wl1271 *wl, | 1263 | int wl1271_acx_set_ht_information(struct wl1271 *wl, |
1187 | u16 ht_operation_mode); | 1264 | u16 ht_operation_mode); |
1265 | int wl1271_acx_set_ba_session(struct wl1271 *wl, | ||
1266 | enum ieee80211_back_parties direction, | ||
1267 | u8 tid_index, u8 policy); | ||
1268 | int wl1271_acx_set_ba_receiver_session(struct wl1271 *wl, u8 tid_index, u16 ssn, | ||
1269 | bool enable); | ||
1188 | int wl1271_acx_tsf_info(struct wl1271 *wl, u64 *mactime); | 1270 | int wl1271_acx_tsf_info(struct wl1271 *wl, u64 *mactime); |
1271 | int wl1271_acx_max_tx_retry(struct wl1271 *wl); | ||
1189 | 1272 | ||
1190 | #endif /* __WL1271_ACX_H__ */ | 1273 | #endif /* __WL1271_ACX_H__ */ |