aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/mvm/fw-api.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm/fw-api.h')
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/fw-api.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/fw-api.h b/drivers/net/wireless/iwlwifi/mvm/fw-api.h
index bad5a552dd8d..1c3079714c2b 100644
--- a/drivers/net/wireless/iwlwifi/mvm/fw-api.h
+++ b/drivers/net/wireless/iwlwifi/mvm/fw-api.h
@@ -141,6 +141,7 @@ enum {
141 141
142 /* Power - legacy power table command */ 142 /* Power - legacy power table command */
143 POWER_TABLE_CMD = 0x77, 143 POWER_TABLE_CMD = 0x77,
144 PSM_UAPSD_AP_MISBEHAVING_NOTIFICATION = 0x78,
144 145
145 /* Thermal Throttling*/ 146 /* Thermal Throttling*/
146 REPLY_THERMAL_MNG_BACKOFF = 0x7e, 147 REPLY_THERMAL_MNG_BACKOFF = 0x7e,
@@ -183,6 +184,7 @@ enum {
183 BT_PROFILE_NOTIFICATION = 0xce, 184 BT_PROFILE_NOTIFICATION = 0xce,
184 BT_COEX_CI = 0x5d, 185 BT_COEX_CI = 0x5d,
185 186
187 REPLY_SF_CFG_CMD = 0xd1,
186 REPLY_BEACON_FILTERING_CMD = 0xd2, 188 REPLY_BEACON_FILTERING_CMD = 0xd2,
187 189
188 REPLY_DEBUG_CMD = 0xf0, 190 REPLY_DEBUG_CMD = 0xf0,
@@ -1052,6 +1054,7 @@ enum iwl_mvm_rx_status {
1052 RX_MPDU_RES_STATUS_SEC_WEP_ENC = (1 << 8), 1054 RX_MPDU_RES_STATUS_SEC_WEP_ENC = (1 << 8),
1053 RX_MPDU_RES_STATUS_SEC_CCM_ENC = (2 << 8), 1055 RX_MPDU_RES_STATUS_SEC_CCM_ENC = (2 << 8),
1054 RX_MPDU_RES_STATUS_SEC_TKIP_ENC = (3 << 8), 1056 RX_MPDU_RES_STATUS_SEC_TKIP_ENC = (3 << 8),
1057 RX_MPDU_RES_STATUS_SEC_EXT_ENC = (4 << 8),
1055 RX_MPDU_RES_STATUS_SEC_CCM_CMAC_ENC = (6 << 8), 1058 RX_MPDU_RES_STATUS_SEC_CCM_CMAC_ENC = (6 << 8),
1056 RX_MPDU_RES_STATUS_SEC_ENC_ERR = (7 << 8), 1059 RX_MPDU_RES_STATUS_SEC_ENC_ERR = (7 << 8),
1057 RX_MPDU_RES_STATUS_SEC_ENC_MSK = (7 << 8), 1060 RX_MPDU_RES_STATUS_SEC_ENC_MSK = (7 << 8),
@@ -1131,6 +1134,7 @@ struct iwl_set_calib_default_cmd {
1131} __packed; /* PHY_CALIB_OVERRIDE_VALUES_S */ 1134} __packed; /* PHY_CALIB_OVERRIDE_VALUES_S */
1132 1135
1133#define MAX_PORT_ID_NUM 2 1136#define MAX_PORT_ID_NUM 2
1137#define MAX_MCAST_FILTERING_ADDRESSES 256
1134 1138
1135/** 1139/**
1136 * struct iwl_mcast_filter_cmd - configure multicast filter. 1140 * struct iwl_mcast_filter_cmd - configure multicast filter.
@@ -1363,4 +1367,65 @@ struct iwl_notif_statistics { /* STATISTICS_NTFY_API_S_VER_8 */
1363 struct mvm_statistics_general general; 1367 struct mvm_statistics_general general;
1364} __packed; 1368} __packed;
1365 1369
1370/***********************************
1371 * Smart Fifo API
1372 ***********************************/
1373/* Smart Fifo state */
1374enum iwl_sf_state {
1375 SF_LONG_DELAY_ON = 0, /* should never be called by driver */
1376 SF_FULL_ON,
1377 SF_UNINIT,
1378 SF_INIT_OFF,
1379 SF_HW_NUM_STATES
1380};
1381
1382/* Smart Fifo possible scenario */
1383enum iwl_sf_scenario {
1384 SF_SCENARIO_SINGLE_UNICAST,
1385 SF_SCENARIO_AGG_UNICAST,
1386 SF_SCENARIO_MULTICAST,
1387 SF_SCENARIO_BA_RESP,
1388 SF_SCENARIO_TX_RESP,
1389 SF_NUM_SCENARIO
1390};
1391
1392#define SF_TRANSIENT_STATES_NUMBER 2 /* SF_LONG_DELAY_ON and SF_FULL_ON */
1393#define SF_NUM_TIMEOUT_TYPES 2 /* Aging timer and Idle timer */
1394
1395/* smart FIFO default values */
1396#define SF_W_MARK_SISO 4096
1397#define SF_W_MARK_MIMO2 8192
1398#define SF_W_MARK_MIMO3 6144
1399#define SF_W_MARK_LEGACY 4096
1400#define SF_W_MARK_SCAN 4096
1401
1402/* SF Scenarios timers for FULL_ON state (aligned to 32 uSec) */
1403#define SF_SINGLE_UNICAST_IDLE_TIMER 320 /* 300 uSec */
1404#define SF_SINGLE_UNICAST_AGING_TIMER 2016 /* 2 mSec */
1405#define SF_AGG_UNICAST_IDLE_TIMER 320 /* 300 uSec */
1406#define SF_AGG_UNICAST_AGING_TIMER 2016 /* 2 mSec */
1407#define SF_MCAST_IDLE_TIMER 2016 /* 2 mSec */
1408#define SF_MCAST_AGING_TIMER 10016 /* 10 mSec */
1409#define SF_BA_IDLE_TIMER 320 /* 300 uSec */
1410#define SF_BA_AGING_TIMER 2016 /* 2 mSec */
1411#define SF_TX_RE_IDLE_TIMER 320 /* 300 uSec */
1412#define SF_TX_RE_AGING_TIMER 2016 /* 2 mSec */
1413
1414#define SF_LONG_DELAY_AGING_TIMER 1000000 /* 1 Sec */
1415
1416/**
1417 * Smart Fifo configuration command.
1418 * @state: smart fifo state, types listed in iwl_sf_sate.
1419 * @watermark: Minimum allowed availabe free space in RXF for transient state.
1420 * @long_delay_timeouts: aging and idle timer values for each scenario
1421 * in long delay state.
1422 * @full_on_timeouts: timer values for each scenario in full on state.
1423 */
1424struct iwl_sf_cfg_cmd {
1425 enum iwl_sf_state state;
1426 __le32 watermark[SF_TRANSIENT_STATES_NUMBER];
1427 __le32 long_delay_timeouts[SF_NUM_SCENARIO][SF_NUM_TIMEOUT_TYPES];
1428 __le32 full_on_timeouts[SF_NUM_SCENARIO][SF_NUM_TIMEOUT_TYPES];
1429} __packed; /* SF_CFG_API_S_VER_2 */
1430
1366#endif /* __fw_api_h__ */ 1431#endif /* __fw_api_h__ */