| #ifndef _ATH11K_SMART_ANT_API_ |
| #define _ATH11K_SMART_ANT_API_ |
| |
| #define SA_API_VERSION_UNDEF 0 |
| #define SA_API_VERSION 1 |
| |
| #define SMART_ANT_RX_CONFIG_REQUIRED 0x01 |
| #define SMART_ANT_TRAINING_REQUIRED 0x02 |
| #define SMART_ANT_TX_CONFIG_REQUIRED 0x04 |
| #define SMART_ANT_TX_FEEDBACK_CONFIG_REQUIRED 0x08 |
| #define SA_TX_FEEDBACK_CONFIG 0x01 |
| |
| #define SMART_ANT_STATUS_SUCCESS 0 |
| #define SMART_ANT_STATUS_FAILURE -1 |
| |
| struct sa_radio_info { |
| u32 radio_id; |
| u8 chainmask; |
| u8 opmode; |
| u8 channel_num; |
| }; |
| |
| struct sa_node_info { |
| u8 mac_addr[6]; |
| u32 radio_id; |
| u8 max_ch_bw; |
| u8 chainmask; |
| u8 opmode; |
| u8 channel_num; |
| u32 ni_cap; |
| }; |
| |
| struct ath11k_smartantenna_ops { |
| int sa_api_version; |
| int (*sa_radio_init)(struct sa_radio_info *radio); |
| int (*sa_radio_deinit)(struct sa_radio_info *radio); |
| int (*sa_node_connect)(struct sa_node_info *node); |
| int (*sa_node_disconnect)(struct sa_node_info *node, uint8_t *status); |
| int (*sa_update_txfeedback)(struct sa_node_info *node, |
| struct ath11k_smart_ant_tx_feedback *txfeedback, |
| uint8_t *status); |
| int (*sa_update_rxfeedback)(struct sa_node_info *node, |
| struct ath11k_smart_ant_rx_feedback *rxfeedback, |
| uint8_t *status); |
| int (*sa_get_txantenna)(struct sa_node_info *node, uint32_t *antenna); |
| int (*sa_get_rxantenna)(struct sa_radio_info *radio, uint32_t *antenna); |
| int (*sa_get_txantenna_default)(struct sa_radio_info *radio, |
| uint32_t *antenna); |
| }; |
| |
| #endif //_ATH11K_SMART_ANT_API_ |