mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 14:19:09 -04:00
qcacld-3.0: Add interface files for dynamic antenna selection
Add interface files for dynamic antenna selection feature CRs-Fixed: 931250 Change-Id: Ieafe368a25c3a69e32cd5de6822ef84130528096
This commit is contained in:
parent
d3cb4778fe
commit
d41c3ed58c
8 changed files with 100 additions and 1 deletions
|
|
@ -146,6 +146,9 @@
|
|||
/* Scan Req Timeout */
|
||||
#define WLAN_WAIT_TIME_SCAN_REQ 100
|
||||
|
||||
#define WLAN_WAIT_TIME_ANTENNA_MODE_REQ 3000
|
||||
#define WLAN_WAIT_TIME_SET_DUAL_MAC_CFG 1500
|
||||
|
||||
#define MAX_NUMBER_OF_ADAPTERS 4
|
||||
|
||||
#define MAX_CFG_STRING_LEN 255
|
||||
|
|
@ -1112,6 +1115,36 @@ typedef struct {
|
|||
|
||||
} fw_log_info;
|
||||
|
||||
/**
|
||||
* enum antenna_mode - number of TX/RX chains
|
||||
* @HDD_ANTENNA_MODE_INVALID: Invalid mode place holder
|
||||
* @HDD_ANTENNA_MODE_1X1: Number of TX/RX chains equals 1
|
||||
* @HDD_ANTENNA_MODE_2X2: Number of TX/RX chains equals 2
|
||||
* @HDD_ANTENNA_MODE_MAX: Place holder for max mode
|
||||
*/
|
||||
enum antenna_mode {
|
||||
HDD_ANTENNA_MODE_INVALID,
|
||||
HDD_ANTENNA_MODE_1X1,
|
||||
HDD_ANTENNA_MODE_2X2,
|
||||
HDD_ANTENNA_MODE_MAX
|
||||
};
|
||||
|
||||
/**
|
||||
* enum smps_mode - SM power save mode
|
||||
* @HDD_SMPS_MODE_STATIC: Static power save
|
||||
* @HDD_SMPS_MODE_DYNAMIC: Dynamic power save
|
||||
* @HDD_SMPS_MODE_RESERVED: Reserved
|
||||
* @HDD_SMPS_MODE_DISABLED: Disable power save
|
||||
* @HDD_SMPS_MODE_MAX: Place holder for max mode
|
||||
*/
|
||||
enum smps_mode {
|
||||
HDD_SMPS_MODE_STATIC,
|
||||
HDD_SMPS_MODE_DYNAMIC,
|
||||
HDD_SMPS_MODE_RESERVED,
|
||||
HDD_SMPS_MODE_DISABLED,
|
||||
HDD_SMPS_MODE_MAX
|
||||
};
|
||||
|
||||
#ifdef WLAN_FEATURE_OFFLOAD_PACKETS
|
||||
/**
|
||||
* struct hdd_offloaded_packets - request id to pattern id mapping
|
||||
|
|
@ -1372,6 +1405,10 @@ struct hdd_context_s {
|
|||
* at runtime and intersecting it with target capab before updating.
|
||||
*/
|
||||
uint32_t fine_time_meas_cap_target;
|
||||
/* completion variable to indicate set antenna mode complete*/
|
||||
struct completion set_antenna_mode_cmpl;
|
||||
/* Current number of TX X RX chains being used */
|
||||
enum antenna_mode current_antenna_mode;
|
||||
};
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
|
|
@ -1566,6 +1603,8 @@ static inline void wlan_hdd_stop_sap(hdd_adapter_t *ap_adapter) {}
|
|||
static inline void wlan_hdd_start_sap(hdd_adapter_t *ap_adapter) {}
|
||||
#endif
|
||||
|
||||
void wlan_hdd_soc_set_antenna_mode_cb(enum set_antenna_mode_status status);
|
||||
|
||||
#ifdef QCA_CONFIG_SMP
|
||||
int wlan_hdd_get_cpu(void);
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -452,6 +452,31 @@ struct sir_set_dual_mac_cfg {
|
|||
struct sir_dual_mac_config set_dual_mac;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct sir_antenna_mode_param - antenna mode param
|
||||
* @num_tx_chains: Number of TX chains
|
||||
* @num_rx_chains: Number of RX chains
|
||||
* @reason: Reason for setting antenna mode
|
||||
* @set_antenna_mode_resp: callback to set antenna mode command
|
||||
*/
|
||||
struct sir_antenna_mode_param {
|
||||
uint32_t num_tx_chains;
|
||||
uint32_t num_rx_chains;
|
||||
void *set_antenna_mode_resp;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct sir_set_antenna_mode - Set antenna mode request
|
||||
* @message_type: Message type
|
||||
* @length: Length of the message
|
||||
* @set_antenna_mode: Params containing antenna mode params
|
||||
*/
|
||||
struct sir_set_antenna_mode {
|
||||
uint16_t message_type;
|
||||
uint16_t length;
|
||||
struct sir_antenna_mode_param set_antenna_mode;
|
||||
};
|
||||
|
||||
/* / BSS type enum used in while scanning/joining etc */
|
||||
typedef enum eSirBssType {
|
||||
eSIR_INFRASTRUCTURE_MODE,
|
||||
|
|
@ -3258,6 +3283,29 @@ struct sir_dual_mac_config_resp {
|
|||
uint32_t status;
|
||||
};
|
||||
|
||||
/**
|
||||
* enum set_antenna_mode_status - Status of set antenna mode
|
||||
* command
|
||||
* @SET_ANTENNA_MODE_STATUS_OK: command successful
|
||||
* @SET_ANTENNA_MODE_STATUS_EINVAL: invalid antenna mode
|
||||
* @SET_ANTENNA_MODE_STATUS_ECANCELED: mode change cancelled
|
||||
* @SET_ANTENNA_MODE_STATUS_ENOTSUP: mode not supported
|
||||
*/
|
||||
enum set_antenna_mode_status {
|
||||
SET_ANTENNA_MODE_STATUS_OK,
|
||||
SET_ANTENNA_MODE_STATUS_EINVAL,
|
||||
SET_ANTENNA_MODE_STATUS_ECANCELED,
|
||||
SET_ANTENNA_MODE_STATUS_ENOTSUP,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct sir_antenna_mode_resp - set antenna mode response
|
||||
* @status: Status of setting the antenna mode
|
||||
*/
|
||||
struct sir_antenna_mode_resp {
|
||||
enum set_antenna_mode_status status;
|
||||
};
|
||||
|
||||
#ifdef WLAN_WAKEUP_EVENTS
|
||||
/*---------------------------------------------------------------------------
|
||||
tSirWakeReasonInd
|
||||
|
|
@ -5157,6 +5205,7 @@ typedef void (*hw_mode_transition_cb)(uint32_t old_hw_mode_index,
|
|||
struct sir_vdev_mac_map *vdev_mac_map);
|
||||
typedef void (*dual_mac_cb)(uint32_t status, uint32_t scan_config,
|
||||
uint32_t fw_mode_config);
|
||||
typedef void (*antenna_mode_cb)(uint32_t status);
|
||||
|
||||
/**
|
||||
* struct sir_nss_update_request
|
||||
|
|
|
|||
|
|
@ -246,6 +246,8 @@ enum eWniMsgTypes {
|
|||
eWNI_SME_EXT_CHANGE_CHANNEL_IND,
|
||||
eWNI_SME_REGISTER_MGMT_FRAME_CB,
|
||||
eWNI_SME_HT40_OBSS_SCAN_IND, /* START and UPDATE OBSS SCAN Indication*/
|
||||
eWNI_SME_SET_ANTENNA_MODE_REQ,
|
||||
eWNI_SME_SET_ANTENNA_MODE_RESP,
|
||||
eWNI_SME_MSG_TYPES_END
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -358,9 +358,11 @@ typedef struct sSirMbMsgP2p {
|
|||
|
||||
#ifdef FEATURE_WLAN_SCAN_PNO
|
||||
#define SIR_HAL_SET_PNO_REQ (SIR_HAL_ITC_MSG_TYPES_BEGIN + 119)
|
||||
/* (SIR_HAL_ITC_MSG_TYPES_BEGIN + 120) is unused */
|
||||
#endif /* FEATURE_WLAN_SCAN_PNO */
|
||||
|
||||
#define SIR_HAL_SOC_ANTENNA_MODE_REQ (SIR_HAL_ITC_MSG_TYPES_BEGIN + 120)
|
||||
#define SIR_HAL_SOC_ANTENNA_MODE_RESP (SIR_HAL_ITC_MSG_TYPES_BEGIN + 121)
|
||||
|
||||
/* (SIR_HAL_ITC_MSG_TYPES_BEGIN + 122) is unused */
|
||||
|
||||
#ifdef WLAN_FEATURE_PACKET_FILTERING
|
||||
|
|
|
|||
|
|
@ -1003,6 +1003,8 @@ QDF_STATUS sme_set_peer_authorized(uint8_t *peer_addr,
|
|||
uint32_t vdev_id);
|
||||
QDF_STATUS sme_soc_set_dual_mac_config(tHalHandle hal,
|
||||
struct sir_dual_mac_config msg);
|
||||
QDF_STATUS sme_soc_set_antenna_mode(tHalHandle hal,
|
||||
struct sir_antenna_mode_param *msg);
|
||||
|
||||
void sme_set_scan_disable(tHalHandle h_hal, int value);
|
||||
void sme_setdef_dot11mode(tHalHandle hal);
|
||||
|
|
|
|||
|
|
@ -191,6 +191,7 @@ typedef struct tagSmeCmd {
|
|||
struct sir_hw_mode set_hw_mode_cmd;
|
||||
struct s_nss_update_cmd nss_update_cmd;
|
||||
struct sir_dual_mac_config set_dual_mac_cmd;
|
||||
struct sir_antenna_mode_param set_antenna_mode_cmd;
|
||||
} u;
|
||||
} tSmeCmd;
|
||||
|
||||
|
|
@ -282,6 +283,7 @@ QDF_STATUS csr_create_roam_scan_channel_list(tpAniSirGlobal pMac,
|
|||
ePhyChanBondState csr_convert_cb_ini_value_to_phy_cb_state(uint32_t cbIniValue);
|
||||
void active_list_cmd_timeout_handle(void *userData);
|
||||
void csr_process_set_dual_mac_config(tpAniSirGlobal mac, tSmeCmd *command);
|
||||
void csr_process_set_antenna_mode(tpAniSirGlobal mac, tSmeCmd *command);
|
||||
void csr_process_set_hw_mode(tpAniSirGlobal mac, tSmeCmd *command);
|
||||
void csr_process_nss_update_req(tpAniSirGlobal mac, tSmeCmd *command);
|
||||
|
||||
|
|
|
|||
|
|
@ -92,6 +92,7 @@ typedef enum eSmeCommandType {
|
|||
e_sme_command_set_hw_mode,
|
||||
e_sme_command_nss_update,
|
||||
e_sme_command_set_dual_mac_config,
|
||||
e_sme_command_set_antenna_mode,
|
||||
} eSmeCommandType;
|
||||
|
||||
typedef enum eSmeState {
|
||||
|
|
|
|||
|
|
@ -1972,6 +1972,8 @@ QDF_STATUS wma_get_scan_id(uint32_t *scan_id);
|
|||
|
||||
QDF_STATUS wma_send_soc_set_dual_mac_config(tp_wma_handle wma_handle,
|
||||
struct sir_dual_mac_config *msg);
|
||||
QDF_STATUS wma_send_pdev_set_antenna_mode(tp_wma_handle wma_handle,
|
||||
struct sir_antenna_mode_param *msg);
|
||||
QDF_STATUS wma_crash_inject(tp_wma_handle wma_handle, uint32_t type,
|
||||
uint32_t delay_time_ms);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue