diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-commands.h')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-commands.h | 85 |
1 files changed, 83 insertions, 2 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-commands.h b/drivers/net/wireless/iwlwifi/iwl-commands.h index acf8e980b1fe..8d2db9d22045 100644 --- a/drivers/net/wireless/iwlwifi/iwl-commands.h +++ b/drivers/net/wireless/iwlwifi/iwl-commands.h | |||
@@ -97,6 +97,7 @@ enum { | |||
97 | REPLY_ADD_STA = 0x18, | 97 | REPLY_ADD_STA = 0x18, |
98 | REPLY_REMOVE_STA = 0x19, | 98 | REPLY_REMOVE_STA = 0x19, |
99 | REPLY_REMOVE_ALL_STA = 0x1a, /* not used */ | 99 | REPLY_REMOVE_ALL_STA = 0x1a, /* not used */ |
100 | REPLY_TXFIFO_FLUSH = 0x1e, | ||
100 | 101 | ||
101 | /* Security */ | 102 | /* Security */ |
102 | REPLY_WEPKEY = 0x20, | 103 | REPLY_WEPKEY = 0x20, |
@@ -957,8 +958,8 @@ struct iwl_qosparam_cmd { | |||
957 | #define IWL3945_STATION_COUNT 25 | 958 | #define IWL3945_STATION_COUNT 25 |
958 | #define IWL4965_BROADCAST_ID 31 | 959 | #define IWL4965_BROADCAST_ID 31 |
959 | #define IWL4965_STATION_COUNT 32 | 960 | #define IWL4965_STATION_COUNT 32 |
960 | #define IWL5000_BROADCAST_ID 15 | 961 | #define IWLAGN_BROADCAST_ID 15 |
961 | #define IWL5000_STATION_COUNT 16 | 962 | #define IWLAGN_STATION_COUNT 16 |
962 | 963 | ||
963 | #define IWL_STATION_COUNT 32 /* MAX(3945,4965)*/ | 964 | #define IWL_STATION_COUNT 32 /* MAX(3945,4965)*/ |
964 | #define IWL_INVALID_STATION 255 | 965 | #define IWL_INVALID_STATION 255 |
@@ -1209,6 +1210,43 @@ struct iwl_rem_sta_cmd { | |||
1209 | u8 reserved2[2]; | 1210 | u8 reserved2[2]; |
1210 | } __packed; | 1211 | } __packed; |
1211 | 1212 | ||
1213 | #define IWL_TX_FIFO_BK_MSK cpu_to_le32(BIT(0)) | ||
1214 | #define IWL_TX_FIFO_BE_MSK cpu_to_le32(BIT(1)) | ||
1215 | #define IWL_TX_FIFO_VI_MSK cpu_to_le32(BIT(2)) | ||
1216 | #define IWL_TX_FIFO_VO_MSK cpu_to_le32(BIT(3)) | ||
1217 | #define IWL_AGG_TX_QUEUE_MSK cpu_to_le32(0xffc00) | ||
1218 | |||
1219 | #define IWL_DROP_SINGLE 0 | ||
1220 | #define IWL_DROP_SELECTED 1 | ||
1221 | #define IWL_DROP_ALL 2 | ||
1222 | |||
1223 | /* | ||
1224 | * REPLY_TXFIFO_FLUSH = 0x1e(command and response) | ||
1225 | * | ||
1226 | * When using full FIFO flush this command checks the scheduler HW block WR/RD | ||
1227 | * pointers to check if all the frames were transferred by DMA into the | ||
1228 | * relevant TX FIFO queue. Only when the DMA is finished and the queue is | ||
1229 | * empty the command can finish. | ||
1230 | * This command is used to flush the TXFIFO from transmit commands, it may | ||
1231 | * operate on single or multiple queues, the command queue can't be flushed by | ||
1232 | * this command. The command response is returned when all the queue flush | ||
1233 | * operations are done. Each TX command flushed return response with the FLUSH | ||
1234 | * status set in the TX response status. When FIFO flush operation is used, | ||
1235 | * the flush operation ends when both the scheduler DMA done and TXFIFO empty | ||
1236 | * are set. | ||
1237 | * | ||
1238 | * @fifo_control: bit mask for which queues to flush | ||
1239 | * @flush_control: flush controls | ||
1240 | * 0: Dump single MSDU | ||
1241 | * 1: Dump multiple MSDU according to PS, INVALID STA, TTL, TID disable. | ||
1242 | * 2: Dump all FIFO | ||
1243 | */ | ||
1244 | struct iwl_txfifo_flush_cmd { | ||
1245 | __le32 fifo_control; | ||
1246 | __le16 flush_control; | ||
1247 | __le16 reserved; | ||
1248 | } __attribute__ ((packed)); | ||
1249 | |||
1212 | /* | 1250 | /* |
1213 | * REPLY_WEP_KEY = 0x20 | 1251 | * REPLY_WEP_KEY = 0x20 |
1214 | */ | 1252 | */ |
@@ -3452,6 +3490,41 @@ struct iwl_missed_beacon_notif { | |||
3452 | #define HD_AUTO_CORR40_X4_TH_ADD_MIN_INDEX (9) | 3490 | #define HD_AUTO_CORR40_X4_TH_ADD_MIN_INDEX (9) |
3453 | #define HD_OFDM_ENERGY_TH_IN_INDEX (10) | 3491 | #define HD_OFDM_ENERGY_TH_IN_INDEX (10) |
3454 | 3492 | ||
3493 | /* | ||
3494 | * Additional table entries in enhance SENSITIVITY_CMD | ||
3495 | */ | ||
3496 | #define HD_INA_NON_SQUARE_DET_OFDM_INDEX (11) | ||
3497 | #define HD_INA_NON_SQUARE_DET_CCK_INDEX (12) | ||
3498 | #define HD_CORR_11_INSTEAD_OF_CORR_9_EN_INDEX (13) | ||
3499 | #define HD_OFDM_NON_SQUARE_DET_SLOPE_MRC_INDEX (14) | ||
3500 | #define HD_OFDM_NON_SQUARE_DET_INTERCEPT_MRC_INDEX (15) | ||
3501 | #define HD_OFDM_NON_SQUARE_DET_SLOPE_INDEX (16) | ||
3502 | #define HD_OFDM_NON_SQUARE_DET_INTERCEPT_INDEX (17) | ||
3503 | #define HD_CCK_NON_SQUARE_DET_SLOPE_MRC_INDEX (18) | ||
3504 | #define HD_CCK_NON_SQUARE_DET_INTERCEPT_MRC_INDEX (19) | ||
3505 | #define HD_CCK_NON_SQUARE_DET_SLOPE_INDEX (20) | ||
3506 | #define HD_CCK_NON_SQUARE_DET_INTERCEPT_INDEX (21) | ||
3507 | #define HD_RESERVED (22) | ||
3508 | |||
3509 | /* number of entries for enhanced tbl */ | ||
3510 | #define ENHANCE_HD_TABLE_SIZE (23) | ||
3511 | |||
3512 | /* number of additional entries for enhanced tbl */ | ||
3513 | #define ENHANCE_HD_TABLE_ENTRIES (ENHANCE_HD_TABLE_SIZE - HD_TABLE_SIZE) | ||
3514 | |||
3515 | #define HD_INA_NON_SQUARE_DET_OFDM_DATA cpu_to_le16(0) | ||
3516 | #define HD_INA_NON_SQUARE_DET_CCK_DATA cpu_to_le16(0) | ||
3517 | #define HD_CORR_11_INSTEAD_OF_CORR_9_EN_DATA cpu_to_le16(0) | ||
3518 | #define HD_OFDM_NON_SQUARE_DET_SLOPE_MRC_DATA cpu_to_le16(668) | ||
3519 | #define HD_OFDM_NON_SQUARE_DET_INTERCEPT_MRC_DATA cpu_to_le16(4) | ||
3520 | #define HD_OFDM_NON_SQUARE_DET_SLOPE_DATA cpu_to_le16(486) | ||
3521 | #define HD_OFDM_NON_SQUARE_DET_INTERCEPT_DATA cpu_to_le16(37) | ||
3522 | #define HD_CCK_NON_SQUARE_DET_SLOPE_MRC_DATA cpu_to_le16(853) | ||
3523 | #define HD_CCK_NON_SQUARE_DET_INTERCEPT_MRC_DATA cpu_to_le16(4) | ||
3524 | #define HD_CCK_NON_SQUARE_DET_SLOPE_DATA cpu_to_le16(476) | ||
3525 | #define HD_CCK_NON_SQUARE_DET_INTERCEPT_DATA cpu_to_le16(99) | ||
3526 | |||
3527 | |||
3455 | /* Control field in struct iwl_sensitivity_cmd */ | 3528 | /* Control field in struct iwl_sensitivity_cmd */ |
3456 | #define SENSITIVITY_CMD_CONTROL_DEFAULT_TABLE cpu_to_le16(0) | 3529 | #define SENSITIVITY_CMD_CONTROL_DEFAULT_TABLE cpu_to_le16(0) |
3457 | #define SENSITIVITY_CMD_CONTROL_WORK_TABLE cpu_to_le16(1) | 3530 | #define SENSITIVITY_CMD_CONTROL_WORK_TABLE cpu_to_le16(1) |
@@ -3468,6 +3541,14 @@ struct iwl_sensitivity_cmd { | |||
3468 | __le16 table[HD_TABLE_SIZE]; /* use HD_* as index */ | 3541 | __le16 table[HD_TABLE_SIZE]; /* use HD_* as index */ |
3469 | } __packed; | 3542 | } __packed; |
3470 | 3543 | ||
3544 | /* | ||
3545 | * | ||
3546 | */ | ||
3547 | struct iwl_enhance_sensitivity_cmd { | ||
3548 | __le16 control; /* always use "1" */ | ||
3549 | __le16 enhance_table[ENHANCE_HD_TABLE_SIZE]; /* use HD_* as index */ | ||
3550 | } __attribute__ ((packed)); | ||
3551 | |||
3471 | 3552 | ||
3472 | /** | 3553 | /** |
3473 | * REPLY_PHY_CALIBRATION_CMD = 0xb0 (command, has simple generic response) | 3554 | * REPLY_PHY_CALIBRATION_CMD = 0xb0 (command, has simple generic response) |