diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm/fw-api.h')
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/fw-api.h | 65 |
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 */ | ||
1374 | enum 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 */ | ||
1383 | enum 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 | */ | ||
1424 | struct 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__ */ |