diff options
Diffstat (limited to 'drivers/net/wireless/iwmc3200wifi/umac.h')
-rw-r--r-- | drivers/net/wireless/iwmc3200wifi/umac.h | 41 |
1 files changed, 39 insertions, 2 deletions
diff --git a/drivers/net/wireless/iwmc3200wifi/umac.h b/drivers/net/wireless/iwmc3200wifi/umac.h index c5a14ae3160a..7f54a145ca65 100644 --- a/drivers/net/wireless/iwmc3200wifi/umac.h +++ b/drivers/net/wireless/iwmc3200wifi/umac.h | |||
@@ -83,6 +83,20 @@ struct iwm_udma_out_wifi_hdr { | |||
83 | ((UMAC_HDI_ACT_TBL_IDX_RA_UMAC << UMAC_HDI_ACT_TBL_IDX_RA_POS) |\ | 83 | ((UMAC_HDI_ACT_TBL_IDX_RA_UMAC << UMAC_HDI_ACT_TBL_IDX_RA_POS) |\ |
84 | (UMAC_HDI_ACT_TBL_IDX_TID_LMAC << UMAC_HDI_ACT_TBL_IDX_TID_POS)) | 84 | (UMAC_HDI_ACT_TBL_IDX_TID_LMAC << UMAC_HDI_ACT_TBL_IDX_TID_POS)) |
85 | 85 | ||
86 | /* STA ID and color */ | ||
87 | #define STA_ID_SEED (0x0f) | ||
88 | #define STA_ID_POS (0) | ||
89 | #define STA_ID_MSK (STA_ID_SEED << STA_ID_POS) | ||
90 | |||
91 | #define STA_COLOR_SEED (0x7) | ||
92 | #define STA_COLOR_POS (4) | ||
93 | #define STA_COLOR_MSK (STA_COLOR_SEED << STA_COLOR_POS) | ||
94 | |||
95 | #define STA_ID_N_COLOR_COLOR(id_n_color) \ | ||
96 | (((id_n_color) & STA_COLOR_MSK) >> STA_COLOR_POS) | ||
97 | #define STA_ID_N_COLOR_ID(id_n_color) \ | ||
98 | (((id_n_color) & STA_ID_MSK) >> STA_ID_POS) | ||
99 | |||
86 | /* iwm_umac_notif_alive.page_grp_state Group number -- bits [3:0] */ | 100 | /* iwm_umac_notif_alive.page_grp_state Group number -- bits [3:0] */ |
87 | #define UMAC_ALIVE_PAGE_STS_GRP_NUM_POS 0 | 101 | #define UMAC_ALIVE_PAGE_STS_GRP_NUM_POS 0 |
88 | #define UMAC_ALIVE_PAGE_STS_GRP_NUM_SEED 0xF | 102 | #define UMAC_ALIVE_PAGE_STS_GRP_NUM_SEED 0xF |
@@ -260,6 +274,9 @@ struct iwm_udma_out_wifi_hdr { | |||
260 | #define UMAC_CMD_OPCODE_GET_CHAN_INFO_LIST 0x16 | 274 | #define UMAC_CMD_OPCODE_GET_CHAN_INFO_LIST 0x16 |
261 | #define UMAC_CMD_OPCODE_SET_PARAM_LIST 0x17 | 275 | #define UMAC_CMD_OPCODE_SET_PARAM_LIST 0x17 |
262 | #define UMAC_CMD_OPCODE_GET_PARAM_LIST 0x18 | 276 | #define UMAC_CMD_OPCODE_GET_PARAM_LIST 0x18 |
277 | #define UMAC_CMD_OPCODE_STOP_RESUME_STA_TX 0x19 | ||
278 | #define UMAC_CMD_OPCODE_TEST_BLOCK_ACK 0x1A | ||
279 | |||
263 | #define UMAC_CMD_OPCODE_BASE_WRAPPER 0xFA | 280 | #define UMAC_CMD_OPCODE_BASE_WRAPPER 0xFA |
264 | #define UMAC_CMD_OPCODE_LMAC_WRAPPER 0xFB | 281 | #define UMAC_CMD_OPCODE_LMAC_WRAPPER 0xFB |
265 | #define UMAC_CMD_OPCODE_HW_TEST_WRAPPER 0xFC | 282 | #define UMAC_CMD_OPCODE_HW_TEST_WRAPPER 0xFC |
@@ -281,6 +298,7 @@ struct iwm_udma_out_wifi_hdr { | |||
281 | #define UMAC_WIFI_IF_CMD_GLOBAL_TX_KEY_ID 0x1B | 298 | #define UMAC_WIFI_IF_CMD_GLOBAL_TX_KEY_ID 0x1B |
282 | #define UMAC_WIFI_IF_CMD_SET_HOST_EXTENDED_IE 0x1C | 299 | #define UMAC_WIFI_IF_CMD_SET_HOST_EXTENDED_IE 0x1C |
283 | #define UMAC_WIFI_IF_CMD_GET_SUPPORTED_CHANNELS 0x1E | 300 | #define UMAC_WIFI_IF_CMD_GET_SUPPORTED_CHANNELS 0x1E |
301 | #define UMAC_WIFI_IF_CMD_PMKID_UPDATE 0x1F | ||
284 | #define UMAC_WIFI_IF_CMD_TX_PWR_TRIGGER 0x20 | 302 | #define UMAC_WIFI_IF_CMD_TX_PWR_TRIGGER 0x20 |
285 | 303 | ||
286 | /* UMAC WiFi interface ports */ | 304 | /* UMAC WiFi interface ports */ |
@@ -687,19 +705,24 @@ struct iwm_umac_notif_rx_ticket { | |||
687 | /* Tx/Rx rates window (number of max of last update window per second) */ | 705 | /* Tx/Rx rates window (number of max of last update window per second) */ |
688 | #define UMAC_NTF_RATE_SAMPLE_NR 4 | 706 | #define UMAC_NTF_RATE_SAMPLE_NR 4 |
689 | 707 | ||
708 | /* Max numbers of bits required to go through all antennae in bitmasks */ | ||
709 | #define UMAC_PHY_NUM_CHAINS 3 | ||
710 | |||
690 | #define IWM_UMAC_MGMT_TID 8 | 711 | #define IWM_UMAC_MGMT_TID 8 |
691 | #define IWM_UMAC_TID_NR 8 | 712 | #define IWM_UMAC_TID_NR 9 /* 8 TIDs + MGMT */ |
692 | 713 | ||
693 | struct iwm_umac_notif_stats { | 714 | struct iwm_umac_notif_stats { |
694 | struct iwm_umac_wifi_in_hdr hdr; | 715 | struct iwm_umac_wifi_in_hdr hdr; |
695 | __le32 flags; | 716 | __le32 flags; |
696 | __le32 timestamp; | 717 | __le32 timestamp; |
697 | __le16 tid_load[IWM_UMAC_TID_NR + 2]; /* 1 non-QoS + 1 dword align */ | 718 | __le16 tid_load[IWM_UMAC_TID_NR + 1]; /* 1 non-QoS + 1 dword align */ |
698 | __le16 tx_rate[UMAC_NTF_RATE_SAMPLE_NR]; | 719 | __le16 tx_rate[UMAC_NTF_RATE_SAMPLE_NR]; |
699 | __le16 rx_rate[UMAC_NTF_RATE_SAMPLE_NR]; | 720 | __le16 rx_rate[UMAC_NTF_RATE_SAMPLE_NR]; |
721 | __le32 chain_energy[UMAC_PHY_NUM_CHAINS]; | ||
700 | s32 rssi_dbm; | 722 | s32 rssi_dbm; |
701 | s32 noise_dbm; | 723 | s32 noise_dbm; |
702 | __le32 supp_rates; | 724 | __le32 supp_rates; |
725 | __le32 supp_ht_rates; | ||
703 | __le32 missed_beacons; | 726 | __le32 missed_beacons; |
704 | __le32 rx_beacons; | 727 | __le32 rx_beacons; |
705 | __le32 rx_dir_pkts; | 728 | __le32 rx_dir_pkts; |
@@ -737,6 +760,20 @@ struct iwm_umac_notif_stats { | |||
737 | __le32 roam_ap_loadblance; | 760 | __le32 roam_ap_loadblance; |
738 | } __attribute__ ((packed)); | 761 | } __attribute__ ((packed)); |
739 | 762 | ||
763 | #define UMAC_STOP_TX_FLAG 0x1 | ||
764 | #define UMAC_RESUME_TX_FLAG 0x2 | ||
765 | |||
766 | #define LAST_SEQ_NUM_INVALID 0xFFFF | ||
767 | |||
768 | struct iwm_umac_notif_stop_resume_tx { | ||
769 | struct iwm_umac_wifi_in_hdr hdr; | ||
770 | u8 flags; /* UMAC_*_TX_FLAG_* */ | ||
771 | u8 sta_id; | ||
772 | __le16 stop_resume_tid_msk; /* tid bitmask */ | ||
773 | } __attribute__ ((packed)); | ||
774 | |||
775 | #define UMAC_MAX_NUM_PMKIDS 4 | ||
776 | |||
740 | /* WiFi interface wrapper header */ | 777 | /* WiFi interface wrapper header */ |
741 | struct iwm_umac_wifi_if { | 778 | struct iwm_umac_wifi_if { |
742 | u8 oid; | 779 | u8 oid; |