|
@@ -35,6 +35,7 @@
|
|
|
#define WMI_MAC_LEN (6)
|
|
|
#define WMI_PROX_RANGE_NUM (3)
|
|
|
#define WMI_MAX_LOSS_DMG_BEACONS (20)
|
|
|
+#define MAX_NUM_OF_SECTORS (128)
|
|
|
|
|
|
/* Mailbox interface
|
|
|
* used for commands and events
|
|
@@ -51,8 +52,10 @@ enum wmi_mid {
|
|
|
* the host
|
|
|
*/
|
|
|
enum wmi_fw_capability {
|
|
|
- WMI_FW_CAPABILITY_FTM = 0,
|
|
|
- WMI_FW_CAPABILITY_PS_CONFIG = 1,
|
|
|
+ WMI_FW_CAPABILITY_FTM = 0,
|
|
|
+ WMI_FW_CAPABILITY_PS_CONFIG = 1,
|
|
|
+ WMI_FW_CAPABILITY_RF_SECTORS = 2,
|
|
|
+ WMI_FW_CAPABILITY_MGMT_RETRY_LIMIT = 3,
|
|
|
WMI_FW_CAPABILITY_MAX,
|
|
|
};
|
|
|
|
|
@@ -66,137 +69,149 @@ struct wmi_cmd_hdr {
|
|
|
|
|
|
/* List of Commands */
|
|
|
enum wmi_command_id {
|
|
|
- WMI_CONNECT_CMDID = 0x01,
|
|
|
- WMI_DISCONNECT_CMDID = 0x03,
|
|
|
- WMI_DISCONNECT_STA_CMDID = 0x04,
|
|
|
- WMI_START_SCAN_CMDID = 0x07,
|
|
|
- WMI_SET_BSS_FILTER_CMDID = 0x09,
|
|
|
- WMI_SET_PROBED_SSID_CMDID = 0x0A,
|
|
|
- WMI_SET_LISTEN_INT_CMDID = 0x0B,
|
|
|
- WMI_BCON_CTRL_CMDID = 0x0F,
|
|
|
- WMI_ADD_CIPHER_KEY_CMDID = 0x16,
|
|
|
- WMI_DELETE_CIPHER_KEY_CMDID = 0x17,
|
|
|
- WMI_PCP_CONF_CMDID = 0x18,
|
|
|
- WMI_SET_APPIE_CMDID = 0x3F,
|
|
|
- WMI_SET_WSC_STATUS_CMDID = 0x41,
|
|
|
- WMI_PXMT_RANGE_CFG_CMDID = 0x42,
|
|
|
- WMI_PXMT_SNR2_RANGE_CFG_CMDID = 0x43,
|
|
|
- WMI_MEM_READ_CMDID = 0x800,
|
|
|
- WMI_MEM_WR_CMDID = 0x801,
|
|
|
- WMI_ECHO_CMDID = 0x803,
|
|
|
- WMI_DEEP_ECHO_CMDID = 0x804,
|
|
|
- WMI_CONFIG_MAC_CMDID = 0x805,
|
|
|
- WMI_CONFIG_PHY_DEBUG_CMDID = 0x806,
|
|
|
- WMI_ADD_DEBUG_TX_PCKT_CMDID = 0x808,
|
|
|
- WMI_PHY_GET_STATISTICS_CMDID = 0x809,
|
|
|
- WMI_FS_TUNE_CMDID = 0x80A,
|
|
|
- WMI_CORR_MEASURE_CMDID = 0x80B,
|
|
|
- WMI_READ_RSSI_CMDID = 0x80C,
|
|
|
- WMI_TEMP_SENSE_CMDID = 0x80E,
|
|
|
- WMI_DC_CALIB_CMDID = 0x80F,
|
|
|
- WMI_SEND_TONE_CMDID = 0x810,
|
|
|
- WMI_IQ_TX_CALIB_CMDID = 0x811,
|
|
|
- WMI_IQ_RX_CALIB_CMDID = 0x812,
|
|
|
- WMI_SET_UCODE_IDLE_CMDID = 0x813,
|
|
|
- WMI_SET_WORK_MODE_CMDID = 0x815,
|
|
|
- WMI_LO_LEAKAGE_CALIB_CMDID = 0x816,
|
|
|
- WMI_MARLON_R_READ_CMDID = 0x818,
|
|
|
- WMI_MARLON_R_WRITE_CMDID = 0x819,
|
|
|
- WMI_MARLON_R_TXRX_SEL_CMDID = 0x81A,
|
|
|
- MAC_IO_STATIC_PARAMS_CMDID = 0x81B,
|
|
|
- MAC_IO_DYNAMIC_PARAMS_CMDID = 0x81C,
|
|
|
- WMI_SILENT_RSSI_CALIB_CMDID = 0x81D,
|
|
|
- WMI_RF_RX_TEST_CMDID = 0x81E,
|
|
|
- WMI_CFG_RX_CHAIN_CMDID = 0x820,
|
|
|
- WMI_VRING_CFG_CMDID = 0x821,
|
|
|
- WMI_BCAST_VRING_CFG_CMDID = 0x822,
|
|
|
- WMI_VRING_BA_EN_CMDID = 0x823,
|
|
|
- WMI_VRING_BA_DIS_CMDID = 0x824,
|
|
|
- WMI_RCP_ADDBA_RESP_CMDID = 0x825,
|
|
|
- WMI_RCP_DELBA_CMDID = 0x826,
|
|
|
- WMI_SET_SSID_CMDID = 0x827,
|
|
|
- WMI_GET_SSID_CMDID = 0x828,
|
|
|
- WMI_SET_PCP_CHANNEL_CMDID = 0x829,
|
|
|
- WMI_GET_PCP_CHANNEL_CMDID = 0x82A,
|
|
|
- WMI_SW_TX_REQ_CMDID = 0x82B,
|
|
|
- WMI_READ_MAC_RXQ_CMDID = 0x830,
|
|
|
- WMI_READ_MAC_TXQ_CMDID = 0x831,
|
|
|
- WMI_WRITE_MAC_RXQ_CMDID = 0x832,
|
|
|
- WMI_WRITE_MAC_TXQ_CMDID = 0x833,
|
|
|
- WMI_WRITE_MAC_XQ_FIELD_CMDID = 0x834,
|
|
|
- WMI_MLME_PUSH_CMDID = 0x835,
|
|
|
- WMI_BEAMFORMING_MGMT_CMDID = 0x836,
|
|
|
- WMI_BF_TXSS_MGMT_CMDID = 0x837,
|
|
|
- WMI_BF_SM_MGMT_CMDID = 0x838,
|
|
|
- WMI_BF_RXSS_MGMT_CMDID = 0x839,
|
|
|
- WMI_BF_TRIG_CMDID = 0x83A,
|
|
|
- WMI_LINK_MAINTAIN_CFG_WRITE_CMDID = 0x842,
|
|
|
- WMI_LINK_MAINTAIN_CFG_READ_CMDID = 0x843,
|
|
|
- WMI_SET_SECTORS_CMDID = 0x849,
|
|
|
- WMI_MAINTAIN_PAUSE_CMDID = 0x850,
|
|
|
- WMI_MAINTAIN_RESUME_CMDID = 0x851,
|
|
|
- WMI_RS_MGMT_CMDID = 0x852,
|
|
|
- WMI_RF_MGMT_CMDID = 0x853,
|
|
|
- WMI_THERMAL_THROTTLING_CTRL_CMDID = 0x854,
|
|
|
- WMI_THERMAL_THROTTLING_GET_STATUS_CMDID = 0x855,
|
|
|
- WMI_OTP_READ_CMDID = 0x856,
|
|
|
- WMI_OTP_WRITE_CMDID = 0x857,
|
|
|
- WMI_LED_CFG_CMDID = 0x858,
|
|
|
+ WMI_CONNECT_CMDID = 0x01,
|
|
|
+ WMI_DISCONNECT_CMDID = 0x03,
|
|
|
+ WMI_DISCONNECT_STA_CMDID = 0x04,
|
|
|
+ WMI_START_SCAN_CMDID = 0x07,
|
|
|
+ WMI_SET_BSS_FILTER_CMDID = 0x09,
|
|
|
+ WMI_SET_PROBED_SSID_CMDID = 0x0A,
|
|
|
+ WMI_SET_LISTEN_INT_CMDID = 0x0B,
|
|
|
+ WMI_BCON_CTRL_CMDID = 0x0F,
|
|
|
+ WMI_ADD_CIPHER_KEY_CMDID = 0x16,
|
|
|
+ WMI_DELETE_CIPHER_KEY_CMDID = 0x17,
|
|
|
+ WMI_PCP_CONF_CMDID = 0x18,
|
|
|
+ WMI_SET_APPIE_CMDID = 0x3F,
|
|
|
+ WMI_SET_WSC_STATUS_CMDID = 0x41,
|
|
|
+ WMI_PXMT_RANGE_CFG_CMDID = 0x42,
|
|
|
+ WMI_PXMT_SNR2_RANGE_CFG_CMDID = 0x43,
|
|
|
+ WMI_MEM_READ_CMDID = 0x800,
|
|
|
+ WMI_MEM_WR_CMDID = 0x801,
|
|
|
+ WMI_ECHO_CMDID = 0x803,
|
|
|
+ WMI_DEEP_ECHO_CMDID = 0x804,
|
|
|
+ WMI_CONFIG_MAC_CMDID = 0x805,
|
|
|
+ WMI_CONFIG_PHY_DEBUG_CMDID = 0x806,
|
|
|
+ WMI_ADD_DEBUG_TX_PCKT_CMDID = 0x808,
|
|
|
+ WMI_PHY_GET_STATISTICS_CMDID = 0x809,
|
|
|
+ WMI_FS_TUNE_CMDID = 0x80A,
|
|
|
+ WMI_CORR_MEASURE_CMDID = 0x80B,
|
|
|
+ WMI_READ_RSSI_CMDID = 0x80C,
|
|
|
+ WMI_TEMP_SENSE_CMDID = 0x80E,
|
|
|
+ WMI_DC_CALIB_CMDID = 0x80F,
|
|
|
+ WMI_SEND_TONE_CMDID = 0x810,
|
|
|
+ WMI_IQ_TX_CALIB_CMDID = 0x811,
|
|
|
+ WMI_IQ_RX_CALIB_CMDID = 0x812,
|
|
|
+ WMI_SET_UCODE_IDLE_CMDID = 0x813,
|
|
|
+ WMI_SET_WORK_MODE_CMDID = 0x815,
|
|
|
+ WMI_LO_LEAKAGE_CALIB_CMDID = 0x816,
|
|
|
+ WMI_MARLON_R_READ_CMDID = 0x818,
|
|
|
+ WMI_MARLON_R_WRITE_CMDID = 0x819,
|
|
|
+ WMI_MARLON_R_TXRX_SEL_CMDID = 0x81A,
|
|
|
+ MAC_IO_STATIC_PARAMS_CMDID = 0x81B,
|
|
|
+ MAC_IO_DYNAMIC_PARAMS_CMDID = 0x81C,
|
|
|
+ WMI_SILENT_RSSI_CALIB_CMDID = 0x81D,
|
|
|
+ WMI_RF_RX_TEST_CMDID = 0x81E,
|
|
|
+ WMI_CFG_RX_CHAIN_CMDID = 0x820,
|
|
|
+ WMI_VRING_CFG_CMDID = 0x821,
|
|
|
+ WMI_BCAST_VRING_CFG_CMDID = 0x822,
|
|
|
+ WMI_VRING_BA_EN_CMDID = 0x823,
|
|
|
+ WMI_VRING_BA_DIS_CMDID = 0x824,
|
|
|
+ WMI_RCP_ADDBA_RESP_CMDID = 0x825,
|
|
|
+ WMI_RCP_DELBA_CMDID = 0x826,
|
|
|
+ WMI_SET_SSID_CMDID = 0x827,
|
|
|
+ WMI_GET_SSID_CMDID = 0x828,
|
|
|
+ WMI_SET_PCP_CHANNEL_CMDID = 0x829,
|
|
|
+ WMI_GET_PCP_CHANNEL_CMDID = 0x82A,
|
|
|
+ WMI_SW_TX_REQ_CMDID = 0x82B,
|
|
|
+ WMI_READ_MAC_RXQ_CMDID = 0x830,
|
|
|
+ WMI_READ_MAC_TXQ_CMDID = 0x831,
|
|
|
+ WMI_WRITE_MAC_RXQ_CMDID = 0x832,
|
|
|
+ WMI_WRITE_MAC_TXQ_CMDID = 0x833,
|
|
|
+ WMI_WRITE_MAC_XQ_FIELD_CMDID = 0x834,
|
|
|
+ WMI_MLME_PUSH_CMDID = 0x835,
|
|
|
+ WMI_BEAMFORMING_MGMT_CMDID = 0x836,
|
|
|
+ WMI_BF_TXSS_MGMT_CMDID = 0x837,
|
|
|
+ WMI_BF_SM_MGMT_CMDID = 0x838,
|
|
|
+ WMI_BF_RXSS_MGMT_CMDID = 0x839,
|
|
|
+ WMI_BF_TRIG_CMDID = 0x83A,
|
|
|
+ WMI_LINK_MAINTAIN_CFG_WRITE_CMDID = 0x842,
|
|
|
+ WMI_LINK_MAINTAIN_CFG_READ_CMDID = 0x843,
|
|
|
+ WMI_SET_SECTORS_CMDID = 0x849,
|
|
|
+ WMI_MAINTAIN_PAUSE_CMDID = 0x850,
|
|
|
+ WMI_MAINTAIN_RESUME_CMDID = 0x851,
|
|
|
+ WMI_RS_MGMT_CMDID = 0x852,
|
|
|
+ WMI_RF_MGMT_CMDID = 0x853,
|
|
|
+ WMI_THERMAL_THROTTLING_CTRL_CMDID = 0x854,
|
|
|
+ WMI_THERMAL_THROTTLING_GET_STATUS_CMDID = 0x855,
|
|
|
+ WMI_OTP_READ_CMDID = 0x856,
|
|
|
+ WMI_OTP_WRITE_CMDID = 0x857,
|
|
|
+ WMI_LED_CFG_CMDID = 0x858,
|
|
|
/* Performance monitoring commands */
|
|
|
- WMI_BF_CTRL_CMDID = 0x862,
|
|
|
- WMI_NOTIFY_REQ_CMDID = 0x863,
|
|
|
- WMI_GET_STATUS_CMDID = 0x864,
|
|
|
- WMI_GET_RF_STATUS_CMDID = 0x866,
|
|
|
- WMI_GET_BASEBAND_TYPE_CMDID = 0x867,
|
|
|
- WMI_UNIT_TEST_CMDID = 0x900,
|
|
|
- WMI_HICCUP_CMDID = 0x901,
|
|
|
- WMI_FLASH_READ_CMDID = 0x902,
|
|
|
- WMI_FLASH_WRITE_CMDID = 0x903,
|
|
|
+ WMI_BF_CTRL_CMDID = 0x862,
|
|
|
+ WMI_NOTIFY_REQ_CMDID = 0x863,
|
|
|
+ WMI_GET_STATUS_CMDID = 0x864,
|
|
|
+ WMI_GET_RF_STATUS_CMDID = 0x866,
|
|
|
+ WMI_GET_BASEBAND_TYPE_CMDID = 0x867,
|
|
|
+ WMI_UNIT_TEST_CMDID = 0x900,
|
|
|
+ WMI_HICCUP_CMDID = 0x901,
|
|
|
+ WMI_FLASH_READ_CMDID = 0x902,
|
|
|
+ WMI_FLASH_WRITE_CMDID = 0x903,
|
|
|
/* Power management */
|
|
|
- WMI_TRAFFIC_DEFERRAL_CMDID = 0x904,
|
|
|
- WMI_TRAFFIC_RESUME_CMDID = 0x905,
|
|
|
+ WMI_TRAFFIC_DEFERRAL_CMDID = 0x904,
|
|
|
+ WMI_TRAFFIC_RESUME_CMDID = 0x905,
|
|
|
/* P2P */
|
|
|
- WMI_P2P_CFG_CMDID = 0x910,
|
|
|
- WMI_PORT_ALLOCATE_CMDID = 0x911,
|
|
|
- WMI_PORT_DELETE_CMDID = 0x912,
|
|
|
- WMI_POWER_MGMT_CFG_CMDID = 0x913,
|
|
|
- WMI_START_LISTEN_CMDID = 0x914,
|
|
|
- WMI_START_SEARCH_CMDID = 0x915,
|
|
|
- WMI_DISCOVERY_START_CMDID = 0x916,
|
|
|
- WMI_DISCOVERY_STOP_CMDID = 0x917,
|
|
|
- WMI_PCP_START_CMDID = 0x918,
|
|
|
- WMI_PCP_STOP_CMDID = 0x919,
|
|
|
- WMI_GET_PCP_FACTOR_CMDID = 0x91B,
|
|
|
+ WMI_P2P_CFG_CMDID = 0x910,
|
|
|
+ WMI_PORT_ALLOCATE_CMDID = 0x911,
|
|
|
+ WMI_PORT_DELETE_CMDID = 0x912,
|
|
|
+ WMI_POWER_MGMT_CFG_CMDID = 0x913,
|
|
|
+ WMI_START_LISTEN_CMDID = 0x914,
|
|
|
+ WMI_START_SEARCH_CMDID = 0x915,
|
|
|
+ WMI_DISCOVERY_START_CMDID = 0x916,
|
|
|
+ WMI_DISCOVERY_STOP_CMDID = 0x917,
|
|
|
+ WMI_PCP_START_CMDID = 0x918,
|
|
|
+ WMI_PCP_STOP_CMDID = 0x919,
|
|
|
+ WMI_GET_PCP_FACTOR_CMDID = 0x91B,
|
|
|
/* Power Save Configuration Commands */
|
|
|
- WMI_PS_DEV_PROFILE_CFG_CMDID = 0x91C,
|
|
|
+ WMI_PS_DEV_PROFILE_CFG_CMDID = 0x91C,
|
|
|
/* Not supported yet */
|
|
|
- WMI_PS_DEV_CFG_CMDID = 0x91D,
|
|
|
+ WMI_PS_DEV_CFG_CMDID = 0x91D,
|
|
|
/* Not supported yet */
|
|
|
- WMI_PS_DEV_CFG_READ_CMDID = 0x91E,
|
|
|
+ WMI_PS_DEV_CFG_READ_CMDID = 0x91E,
|
|
|
/* Per MAC Power Save Configuration commands
|
|
|
* Not supported yet
|
|
|
*/
|
|
|
- WMI_PS_MID_CFG_CMDID = 0x91F,
|
|
|
+ WMI_PS_MID_CFG_CMDID = 0x91F,
|
|
|
/* Not supported yet */
|
|
|
- WMI_PS_MID_CFG_READ_CMDID = 0x920,
|
|
|
- WMI_RS_CFG_CMDID = 0x921,
|
|
|
- WMI_GET_DETAILED_RS_RES_CMDID = 0x922,
|
|
|
- WMI_AOA_MEAS_CMDID = 0x923,
|
|
|
- WMI_TOF_SESSION_START_CMDID = 0x991,
|
|
|
- WMI_TOF_GET_CAPABILITIES_CMDID = 0x992,
|
|
|
- WMI_TOF_SET_LCR_CMDID = 0x993,
|
|
|
- WMI_TOF_SET_LCI_CMDID = 0x994,
|
|
|
- WMI_TOF_CHANNEL_INFO_CMDID = 0x995,
|
|
|
- WMI_SET_MAC_ADDRESS_CMDID = 0xF003,
|
|
|
- WMI_ABORT_SCAN_CMDID = 0xF007,
|
|
|
- WMI_SET_PROMISCUOUS_MODE_CMDID = 0xF041,
|
|
|
- WMI_GET_PMK_CMDID = 0xF048,
|
|
|
- WMI_SET_PASSPHRASE_CMDID = 0xF049,
|
|
|
- WMI_SEND_ASSOC_RES_CMDID = 0xF04A,
|
|
|
- WMI_SET_ASSOC_REQ_RELAY_CMDID = 0xF04B,
|
|
|
- WMI_MAC_ADDR_REQ_CMDID = 0xF04D,
|
|
|
- WMI_FW_VER_CMDID = 0xF04E,
|
|
|
- WMI_PMC_CMDID = 0xF04F,
|
|
|
+ WMI_PS_MID_CFG_READ_CMDID = 0x920,
|
|
|
+ WMI_RS_CFG_CMDID = 0x921,
|
|
|
+ WMI_GET_DETAILED_RS_RES_CMDID = 0x922,
|
|
|
+ WMI_AOA_MEAS_CMDID = 0x923,
|
|
|
+ WMI_SET_MGMT_RETRY_LIMIT_CMDID = 0x930,
|
|
|
+ WMI_GET_MGMT_RETRY_LIMIT_CMDID = 0x931,
|
|
|
+ WMI_TOF_SESSION_START_CMDID = 0x991,
|
|
|
+ WMI_TOF_GET_CAPABILITIES_CMDID = 0x992,
|
|
|
+ WMI_TOF_SET_LCR_CMDID = 0x993,
|
|
|
+ WMI_TOF_SET_LCI_CMDID = 0x994,
|
|
|
+ WMI_TOF_CHANNEL_INFO_CMDID = 0x995,
|
|
|
+ WMI_TOF_SET_TX_RX_OFFSET_CMDID = 0x997,
|
|
|
+ WMI_TOF_GET_TX_RX_OFFSET_CMDID = 0x998,
|
|
|
+ WMI_GET_RF_SECTOR_PARAMS_CMDID = 0x9A0,
|
|
|
+ WMI_SET_RF_SECTOR_PARAMS_CMDID = 0x9A1,
|
|
|
+ WMI_GET_SELECTED_RF_SECTOR_INDEX_CMDID = 0x9A2,
|
|
|
+ WMI_SET_SELECTED_RF_SECTOR_INDEX_CMDID = 0x9A3,
|
|
|
+ WMI_SET_RF_SECTOR_ON_CMDID = 0x9A4,
|
|
|
+ WMI_PRIO_TX_SECTORS_ORDER_CMDID = 0x9A5,
|
|
|
+ WMI_PRIO_TX_SECTORS_NUMBER_CMDID = 0x9A6,
|
|
|
+ WMI_PRIO_TX_SECTORS_SET_DEFAULT_CFG_CMDID = 0x9A7,
|
|
|
+ WMI_SET_MAC_ADDRESS_CMDID = 0xF003,
|
|
|
+ WMI_ABORT_SCAN_CMDID = 0xF007,
|
|
|
+ WMI_SET_PROMISCUOUS_MODE_CMDID = 0xF041,
|
|
|
+ WMI_GET_PMK_CMDID = 0xF048,
|
|
|
+ WMI_SET_PASSPHRASE_CMDID = 0xF049,
|
|
|
+ WMI_SEND_ASSOC_RES_CMDID = 0xF04A,
|
|
|
+ WMI_SET_ASSOC_REQ_RELAY_CMDID = 0xF04B,
|
|
|
+ WMI_MAC_ADDR_REQ_CMDID = 0xF04D,
|
|
|
+ WMI_FW_VER_CMDID = 0xF04E,
|
|
|
+ WMI_PMC_CMDID = 0xF04F,
|
|
|
};
|
|
|
|
|
|
/* WMI_CONNECT_CMDID */
|
|
@@ -879,6 +894,14 @@ struct wmi_aoa_meas_cmd {
|
|
|
__le32 meas_rf_mask;
|
|
|
} __packed;
|
|
|
|
|
|
+/* WMI_SET_MGMT_RETRY_LIMIT_CMDID */
|
|
|
+struct wmi_set_mgmt_retry_limit_cmd {
|
|
|
+ /* MAC retransmit limit for mgmt frames */
|
|
|
+ u8 mgmt_retry_limit;
|
|
|
+ /* alignment to 32b */
|
|
|
+ u8 reserved[3];
|
|
|
+} __packed;
|
|
|
+
|
|
|
enum wmi_tof_burst_duration {
|
|
|
WMI_TOF_BURST_DURATION_250_USEC = 2,
|
|
|
WMI_TOF_BURST_DURATION_500_USEC = 3,
|
|
@@ -942,6 +965,15 @@ struct wmi_tof_channel_info_cmd {
|
|
|
__le32 channel_info_report_request;
|
|
|
} __packed;
|
|
|
|
|
|
+/* WMI_TOF_SET_TX_RX_OFFSET_CMDID */
|
|
|
+struct wmi_tof_set_tx_rx_offset_cmd {
|
|
|
+ /* TX delay offset */
|
|
|
+ __le32 tx_offset;
|
|
|
+ /* RX delay offset */
|
|
|
+ __le32 rx_offset;
|
|
|
+ __le32 reserved[2];
|
|
|
+} __packed;
|
|
|
+
|
|
|
/* WMI Events
|
|
|
* List of Events (target to host)
|
|
|
*/
|
|
@@ -1035,12 +1067,24 @@ enum wmi_event_id {
|
|
|
WMI_RS_CFG_DONE_EVENTID = 0x1921,
|
|
|
WMI_GET_DETAILED_RS_RES_EVENTID = 0x1922,
|
|
|
WMI_AOA_MEAS_EVENTID = 0x1923,
|
|
|
+ WMI_SET_MGMT_RETRY_LIMIT_EVENTID = 0x1930,
|
|
|
+ WMI_GET_MGMT_RETRY_LIMIT_EVENTID = 0x1931,
|
|
|
WMI_TOF_SESSION_END_EVENTID = 0x1991,
|
|
|
WMI_TOF_GET_CAPABILITIES_EVENTID = 0x1992,
|
|
|
WMI_TOF_SET_LCR_EVENTID = 0x1993,
|
|
|
WMI_TOF_SET_LCI_EVENTID = 0x1994,
|
|
|
WMI_TOF_FTM_PER_DEST_RES_EVENTID = 0x1995,
|
|
|
WMI_TOF_CHANNEL_INFO_EVENTID = 0x1996,
|
|
|
+ WMI_TOF_SET_TX_RX_OFFSET_EVENTID = 0x1997,
|
|
|
+ WMI_TOF_GET_TX_RX_OFFSET_EVENTID = 0x1998,
|
|
|
+ WMI_GET_RF_SECTOR_PARAMS_DONE_EVENTID = 0x19A0,
|
|
|
+ WMI_SET_RF_SECTOR_PARAMS_DONE_EVENTID = 0x19A1,
|
|
|
+ WMI_GET_SELECTED_RF_SECTOR_INDEX_DONE_EVENTID = 0x19A2,
|
|
|
+ WMI_SET_SELECTED_RF_SECTOR_INDEX_DONE_EVENTID = 0x19A3,
|
|
|
+ WMI_SET_RF_SECTOR_ON_DONE_EVENTID = 0x19A4,
|
|
|
+ WMI_PRIO_TX_SECTORS_ORDER_EVENTID = 0x19A5,
|
|
|
+ WMI_PRIO_TX_SECTORS_NUMBER_EVENTID = 0x19A6,
|
|
|
+ WMI_PRIO_TX_SECTORS_SET_DEFAULT_CFG_EVENTID = 0x19A7,
|
|
|
WMI_SET_CHANNEL_EVENTID = 0x9000,
|
|
|
WMI_ASSOC_REQ_EVENTID = 0x9001,
|
|
|
WMI_EAPOL_RX_EVENTID = 0x9002,
|
|
@@ -1166,6 +1210,7 @@ enum baseband_type {
|
|
|
BASEBAND_SPARROW_M_B0 = 0x05,
|
|
|
BASEBAND_SPARROW_M_C0 = 0x06,
|
|
|
BASEBAND_SPARROW_M_D0 = 0x07,
|
|
|
+ BASEBAND_TALYN_M_A0 = 0x08,
|
|
|
};
|
|
|
|
|
|
/* WMI_GET_BASEBAND_TYPE_EVENTID */
|
|
@@ -2070,6 +2115,22 @@ struct wmi_aoa_meas_event {
|
|
|
u8 meas_data[WMI_AOA_MAX_DATA_SIZE];
|
|
|
} __packed;
|
|
|
|
|
|
+/* WMI_SET_MGMT_RETRY_LIMIT_EVENTID */
|
|
|
+struct wmi_set_mgmt_retry_limit_event {
|
|
|
+ /* enum wmi_fw_status */
|
|
|
+ u8 status;
|
|
|
+ /* alignment to 32b */
|
|
|
+ u8 reserved[3];
|
|
|
+} __packed;
|
|
|
+
|
|
|
+/* WMI_GET_MGMT_RETRY_LIMIT_EVENTID */
|
|
|
+struct wmi_get_mgmt_retry_limit_event {
|
|
|
+ /* MAC retransmit limit for mgmt frames */
|
|
|
+ u8 mgmt_retry_limit;
|
|
|
+ /* alignment to 32b */
|
|
|
+ u8 reserved[3];
|
|
|
+} __packed;
|
|
|
+
|
|
|
/* WMI_TOF_GET_CAPABILITIES_EVENTID */
|
|
|
struct wmi_tof_get_capabilities_event {
|
|
|
u8 ftm_capability;
|
|
@@ -2184,4 +2245,283 @@ struct wmi_tof_channel_info_event {
|
|
|
u8 report[0];
|
|
|
} __packed;
|
|
|
|
|
|
+/* WMI_TOF_SET_TX_RX_OFFSET_EVENTID */
|
|
|
+struct wmi_tof_set_tx_rx_offset_event {
|
|
|
+ /* enum wmi_fw_status */
|
|
|
+ u8 status;
|
|
|
+ u8 reserved[3];
|
|
|
+} __packed;
|
|
|
+
|
|
|
+/* WMI_TOF_GET_TX_RX_OFFSET_EVENTID */
|
|
|
+struct wmi_tof_get_tx_rx_offset_event {
|
|
|
+ /* enum wmi_fw_status */
|
|
|
+ u8 status;
|
|
|
+ u8 reserved1[3];
|
|
|
+ /* TX delay offset */
|
|
|
+ __le32 tx_offset;
|
|
|
+ /* RX delay offset */
|
|
|
+ __le32 rx_offset;
|
|
|
+ __le32 reserved2[2];
|
|
|
+} __packed;
|
|
|
+
|
|
|
+/* Result status codes for WMI commands */
|
|
|
+enum wmi_rf_sector_status {
|
|
|
+ WMI_RF_SECTOR_STATUS_SUCCESS = 0x00,
|
|
|
+ WMI_RF_SECTOR_STATUS_BAD_PARAMETERS_ERROR = 0x01,
|
|
|
+ WMI_RF_SECTOR_STATUS_BUSY_ERROR = 0x02,
|
|
|
+ WMI_RF_SECTOR_STATUS_NOT_SUPPORTED_ERROR = 0x03,
|
|
|
+};
|
|
|
+
|
|
|
+/* Types of the RF sector (TX,RX) */
|
|
|
+enum wmi_rf_sector_type {
|
|
|
+ WMI_RF_SECTOR_TYPE_RX = 0x00,
|
|
|
+ WMI_RF_SECTOR_TYPE_TX = 0x01,
|
|
|
+};
|
|
|
+
|
|
|
+/* Content of RF Sector (six 32-bits registers) */
|
|
|
+struct wmi_rf_sector_info {
|
|
|
+ /* Phase values for RF Chains[15-0] (2bits per RF chain) */
|
|
|
+ __le32 psh_hi;
|
|
|
+ /* Phase values for RF Chains[31-16] (2bits per RF chain) */
|
|
|
+ __le32 psh_lo;
|
|
|
+ /* ETYPE Bit0 for all RF chains[31-0] - bit0 of Edge amplifier gain
|
|
|
+ * index
|
|
|
+ */
|
|
|
+ __le32 etype0;
|
|
|
+ /* ETYPE Bit1 for all RF chains[31-0] - bit1 of Edge amplifier gain
|
|
|
+ * index
|
|
|
+ */
|
|
|
+ __le32 etype1;
|
|
|
+ /* ETYPE Bit2 for all RF chains[31-0] - bit2 of Edge amplifier gain
|
|
|
+ * index
|
|
|
+ */
|
|
|
+ __le32 etype2;
|
|
|
+ /* D-Type values (3bits each) for 8 Distribution amplifiers + X16
|
|
|
+ * switch bits
|
|
|
+ */
|
|
|
+ __le32 dtype_swch_off;
|
|
|
+} __packed;
|
|
|
+
|
|
|
+#define WMI_INVALID_RF_SECTOR_INDEX (0xFFFF)
|
|
|
+#define WMI_MAX_RF_MODULES_NUM (8)
|
|
|
+
|
|
|
+/* WMI_GET_RF_SECTOR_PARAMS_CMD */
|
|
|
+struct wmi_get_rf_sector_params_cmd {
|
|
|
+ /* Sector number to be retrieved */
|
|
|
+ __le16 sector_idx;
|
|
|
+ /* enum wmi_rf_sector_type - type of requested RF sector */
|
|
|
+ u8 sector_type;
|
|
|
+ /* bitmask vector specifying destination RF modules */
|
|
|
+ u8 rf_modules_vec;
|
|
|
+} __packed;
|
|
|
+
|
|
|
+/* \WMI_GET_RF_SECTOR_PARAMS_DONE_EVENT */
|
|
|
+struct wmi_get_rf_sector_params_done_event {
|
|
|
+ /* result status of WMI_GET_RF_SECTOR_PARAMS_CMD (enum
|
|
|
+ * wmi_rf_sector_status)
|
|
|
+ */
|
|
|
+ u8 status;
|
|
|
+ /* align next field to U64 boundary */
|
|
|
+ u8 reserved[7];
|
|
|
+ /* TSF timestamp when RF sectors where retrieved */
|
|
|
+ __le64 tsf;
|
|
|
+ /* Content of RF sector retrieved from each RF module */
|
|
|
+ struct wmi_rf_sector_info sectors_info[WMI_MAX_RF_MODULES_NUM];
|
|
|
+} __packed;
|
|
|
+
|
|
|
+/* WMI_SET_RF_SECTOR_PARAMS_CMD */
|
|
|
+struct wmi_set_rf_sector_params_cmd {
|
|
|
+ /* Sector number to be retrieved */
|
|
|
+ __le16 sector_idx;
|
|
|
+ /* enum wmi_rf_sector_type - type of requested RF sector */
|
|
|
+ u8 sector_type;
|
|
|
+ /* bitmask vector specifying destination RF modules */
|
|
|
+ u8 rf_modules_vec;
|
|
|
+ /* Content of RF sector to be written to each RF module */
|
|
|
+ struct wmi_rf_sector_info sectors_info[WMI_MAX_RF_MODULES_NUM];
|
|
|
+} __packed;
|
|
|
+
|
|
|
+/* \WMI_SET_RF_SECTOR_PARAMS_DONE_EVENT */
|
|
|
+struct wmi_set_rf_sector_params_done_event {
|
|
|
+ /* result status of WMI_SET_RF_SECTOR_PARAMS_CMD (enum
|
|
|
+ * wmi_rf_sector_status)
|
|
|
+ */
|
|
|
+ u8 status;
|
|
|
+} __packed;
|
|
|
+
|
|
|
+/* WMI_GET_SELECTED_RF_SECTOR_INDEX_CMD - Get RF sector index selected by
|
|
|
+ * TXSS/BRP for communication with specified CID
|
|
|
+ */
|
|
|
+struct wmi_get_selected_rf_sector_index_cmd {
|
|
|
+ /* Connection/Station ID in [0:7] range */
|
|
|
+ u8 cid;
|
|
|
+ /* type of requested RF sector (enum wmi_rf_sector_type) */
|
|
|
+ u8 sector_type;
|
|
|
+ /* align to U32 boundary */
|
|
|
+ u8 reserved[2];
|
|
|
+} __packed;
|
|
|
+
|
|
|
+/* \WMI_GET_SELECTED_RF_SECTOR_INDEX_DONE_EVENT - Returns retrieved RF sector
|
|
|
+ * index selected by TXSS/BRP for communication with specified CID
|
|
|
+ */
|
|
|
+struct wmi_get_selected_rf_sector_index_done_event {
|
|
|
+ /* Retrieved sector index selected in TXSS (for TX sector request) or
|
|
|
+ * BRP (for RX sector request)
|
|
|
+ */
|
|
|
+ __le16 sector_idx;
|
|
|
+ /* result status of WMI_GET_SELECTED_RF_SECTOR_INDEX_CMD (enum
|
|
|
+ * wmi_rf_sector_status)
|
|
|
+ */
|
|
|
+ u8 status;
|
|
|
+ /* align next field to U64 boundary */
|
|
|
+ u8 reserved[5];
|
|
|
+ /* TSF timestamp when result was retrieved */
|
|
|
+ __le64 tsf;
|
|
|
+} __packed;
|
|
|
+
|
|
|
+/* WMI_SET_SELECTED_RF_SECTOR_INDEX_CMD - Force RF sector index for
|
|
|
+ * communication with specified CID. Assumes that TXSS/BRP is disabled by
|
|
|
+ * other command
|
|
|
+ */
|
|
|
+struct wmi_set_selected_rf_sector_index_cmd {
|
|
|
+ /* Connection/Station ID in [0:7] range */
|
|
|
+ u8 cid;
|
|
|
+ /* type of requested RF sector (enum wmi_rf_sector_type) */
|
|
|
+ u8 sector_type;
|
|
|
+ /* Forced sector index */
|
|
|
+ __le16 sector_idx;
|
|
|
+} __packed;
|
|
|
+
|
|
|
+/* \WMI_SET_SELECTED_RF_SECTOR_INDEX_DONE_EVENT - Success/Fail status for
|
|
|
+ * WMI_SET_SELECTED_RF_SECTOR_INDEX_CMD
|
|
|
+ */
|
|
|
+struct wmi_set_selected_rf_sector_index_done_event {
|
|
|
+ /* result status of WMI_SET_SELECTED_RF_SECTOR_INDEX_CMD (enum
|
|
|
+ * wmi_rf_sector_status)
|
|
|
+ */
|
|
|
+ u8 status;
|
|
|
+ /* align to U32 boundary */
|
|
|
+ u8 reserved[3];
|
|
|
+} __packed;
|
|
|
+
|
|
|
+/* WMI_SET_RF_SECTOR_ON_CMD - Activates specified sector for specified rf
|
|
|
+ * modules
|
|
|
+ */
|
|
|
+struct wmi_set_rf_sector_on_cmd {
|
|
|
+ /* Sector index to be activated */
|
|
|
+ __le16 sector_idx;
|
|
|
+ /* type of requested RF sector (enum wmi_rf_sector_type) */
|
|
|
+ u8 sector_type;
|
|
|
+ /* bitmask vector specifying destination RF modules */
|
|
|
+ u8 rf_modules_vec;
|
|
|
+} __packed;
|
|
|
+
|
|
|
+/* \WMI_SET_RF_SECTOR_ON_DONE_EVENT - Success/Fail status for
|
|
|
+ * WMI_SET_RF_SECTOR_ON_CMD
|
|
|
+ */
|
|
|
+struct wmi_set_rf_sector_on_done_event {
|
|
|
+ /* result status of WMI_SET_RF_SECTOR_ON_CMD (enum
|
|
|
+ * wmi_rf_sector_status)
|
|
|
+ */
|
|
|
+ u8 status;
|
|
|
+ /* align to U32 boundary */
|
|
|
+ u8 reserved[3];
|
|
|
+} __packed;
|
|
|
+
|
|
|
+enum wmi_sector_sweep_type {
|
|
|
+ WMI_SECTOR_SWEEP_TYPE_TXSS = 0x00,
|
|
|
+ WMI_SECTOR_SWEEP_TYPE_BCON = 0x01,
|
|
|
+ WMI_SECTOR_SWEEP_TYPE_TXSS_AND_BCON = 0x02,
|
|
|
+ WMI_SECTOR_SWEEP_TYPE_NUM = 0x03,
|
|
|
+};
|
|
|
+
|
|
|
+/* WMI_PRIO_TX_SECTORS_ORDER_CMDID
|
|
|
+ *
|
|
|
+ * Set the order of TX sectors in TXSS and/or Beacon(AP).
|
|
|
+ *
|
|
|
+ * Returned event:
|
|
|
+ * - WMI_PRIO_TX_SECTORS_ORDER_EVENTID
|
|
|
+ */
|
|
|
+struct wmi_prio_tx_sectors_order_cmd {
|
|
|
+ /* tx sectors order to be applied, 0xFF for end of array */
|
|
|
+ u8 tx_sectors_priority_array[MAX_NUM_OF_SECTORS];
|
|
|
+ /* enum wmi_sector_sweep_type, TXSS and/or Beacon */
|
|
|
+ u8 sector_sweep_type;
|
|
|
+ /* needed only for TXSS configuration */
|
|
|
+ u8 cid;
|
|
|
+ /* alignment to 32b */
|
|
|
+ u8 reserved[2];
|
|
|
+} __packed;
|
|
|
+
|
|
|
+/* completion status codes */
|
|
|
+enum wmi_prio_tx_sectors_cmd_status {
|
|
|
+ WMI_PRIO_TX_SECT_CMD_STATUS_SUCCESS = 0x00,
|
|
|
+ WMI_PRIO_TX_SECT_CMD_STATUS_BAD_PARAM = 0x01,
|
|
|
+ /* other error */
|
|
|
+ WMI_PRIO_TX_SECT_CMD_STATUS_ERROR = 0x02,
|
|
|
+};
|
|
|
+
|
|
|
+/* WMI_PRIO_TX_SECTORS_ORDER_EVENTID */
|
|
|
+struct wmi_prio_tx_sectors_order_event {
|
|
|
+ /* enum wmi_prio_tx_sectors_cmd_status */
|
|
|
+ u8 status;
|
|
|
+ /* alignment to 32b */
|
|
|
+ u8 reserved[3];
|
|
|
+} __packed;
|
|
|
+
|
|
|
+struct wmi_prio_tx_sectors_num_cmd {
|
|
|
+ /* [0-128], 0 = No changes */
|
|
|
+ u8 beacon_number_of_sectors;
|
|
|
+ /* [0-128], 0 = No changes */
|
|
|
+ u8 txss_number_of_sectors;
|
|
|
+ /* [0-8] needed only for TXSS configuration */
|
|
|
+ u8 cid;
|
|
|
+} __packed;
|
|
|
+
|
|
|
+/* WMI_PRIO_TX_SECTORS_NUMBER_CMDID
|
|
|
+ *
|
|
|
+ * Set the number of active sectors in TXSS and/or Beacon.
|
|
|
+ *
|
|
|
+ * Returned event:
|
|
|
+ * - WMI_PRIO_TX_SECTORS_NUMBER_EVENTID
|
|
|
+ */
|
|
|
+struct wmi_prio_tx_sectors_number_cmd {
|
|
|
+ struct wmi_prio_tx_sectors_num_cmd active_sectors_num;
|
|
|
+ /* alignment to 32b */
|
|
|
+ u8 reserved;
|
|
|
+} __packed;
|
|
|
+
|
|
|
+/* WMI_PRIO_TX_SECTORS_NUMBER_EVENTID */
|
|
|
+struct wmi_prio_tx_sectors_number_event {
|
|
|
+ /* enum wmi_prio_tx_sectors_cmd_status */
|
|
|
+ u8 status;
|
|
|
+ /* alignment to 32b */
|
|
|
+ u8 reserved[3];
|
|
|
+} __packed;
|
|
|
+
|
|
|
+/* WMI_PRIO_TX_SECTORS_SET_DEFAULT_CFG_CMDID
|
|
|
+ *
|
|
|
+ * Set default sectors order and number (hard coded in board file)
|
|
|
+ * in TXSS and/or Beacon.
|
|
|
+ *
|
|
|
+ * Returned event:
|
|
|
+ * - WMI_PRIO_TX_SECTORS_SET_DEFAULT_CFG_EVENTID
|
|
|
+ */
|
|
|
+struct wmi_prio_tx_sectors_set_default_cfg_cmd {
|
|
|
+ /* enum wmi_sector_sweep_type, TXSS and/or Beacon */
|
|
|
+ u8 sector_sweep_type;
|
|
|
+ /* needed only for TXSS configuration */
|
|
|
+ u8 cid;
|
|
|
+ /* alignment to 32b */
|
|
|
+ u8 reserved[2];
|
|
|
+} __packed;
|
|
|
+
|
|
|
+/* WMI_PRIO_TX_SECTORS_SET_DEFAULT_CFG_EVENTID */
|
|
|
+struct wmi_prio_tx_sectors_set_default_cfg_event {
|
|
|
+ /* enum wmi_prio_tx_sectors_cmd_status */
|
|
|
+ u8 status;
|
|
|
+ /* alignment to 32b */
|
|
|
+ u8 reserved[3];
|
|
|
+} __packed;
|
|
|
+
|
|
|
#endif /* __WILOCITY_WMI_H__ */
|