qcacmn: Add MLME Tx & Rx Ops for vdev mgmt ops
Add Tx & Rx callbacks in LMAC structure and the same will be (de)initialized through psoc disable and enable from init_deinit component Change-Id: I346c9076f0966545fb779dc150f5d6498c793308 CRs-Fixed: 2383346
This commit is contained in:
@@ -72,6 +72,11 @@ struct direct_buf_rx_data;
|
||||
#include <wlan_cp_stats_mc_defs.h>
|
||||
#endif /* QCA_SUPPORT_CP_STATS */
|
||||
|
||||
#ifdef CMN_VDEV_MGR_TGT_IF_ENABLE
|
||||
#include <wlan_vdev_mgr_tgt_if_tx_defs.h>
|
||||
#include <wlan_vdev_mgr_tgt_if_rx_defs.h>
|
||||
#endif /* CMN_VDEV_MGR_TGT_IF_ENABLE */
|
||||
|
||||
#ifdef QCA_SUPPORT_CP_STATS
|
||||
/**
|
||||
* struct wlan_lmac_if_cp_stats_tx_ops - defines southbound tx callbacks for
|
||||
@@ -170,12 +175,98 @@ struct wlan_lmac_if_ftm_tx_ops {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* struct wlan_lmac_if_mlme_tx_ops - south bound tx function pointers for mlme
|
||||
* @scan_sta_power_events: function to handle STA power events
|
||||
* @scan_connection_lost: function to get scan connection lost
|
||||
* @scan_end: function to end scan
|
||||
* @get_wifi_iface_id: function to get wifi interface id
|
||||
* @vdev_mlme_attach: function to register events
|
||||
* @vdev_mlme_detach: function to unregister events
|
||||
* @vdev_mlme_rsp_timer_mgmt: function to manage vdev response timer
|
||||
* @vdev_create_send: function to send vdev create
|
||||
* @vdev_create_complete: function to send WMI cfg required for create
|
||||
* @vdev_start_send: function to send vdev start
|
||||
* @vdev_up_send: function to send vdev up
|
||||
* @vdev_delete_send: function to send vdev delete
|
||||
* @vdev_stop_send: function to send vdev stop
|
||||
* @vdev_down_send: function to send vdev down
|
||||
* @vdev_set_param_send: function to send vdev parameter
|
||||
* @vdev_set_nac_rssi_send: function to send nac rssi
|
||||
* @vdev_set_neighbour_rx_cmd_send: function to send vdev neighbour rx cmd
|
||||
* @vdev_sifs_trigger_send: function to send vdev sifs trigger
|
||||
* @vdev_set_custom_aggr_size_cmd_send: function to send custom aggr size
|
||||
* @vdev_config_ratemask_cmd_send: function to send ratemask
|
||||
* @peer_flush_tids_send: function to flush peer tids
|
||||
* @multiple_vdev_restart_req_cmd: function to send multiple vdev restart
|
||||
* @beacon_send_cmd: function to send beacon
|
||||
* @beacon_tmpl_send: function to send beacon template
|
||||
* @vdev_bcn_miss_offload_send: function to send beacon miss offload
|
||||
* @vdev_sta_ps_param_send: function to sent STA power save config
|
||||
* @target_is_pre_lithium: function to get target type status
|
||||
* @vdev_mgr_resp_timer_mgmt: function to manage response timer
|
||||
*/
|
||||
struct wlan_lmac_if_mlme_tx_ops {
|
||||
void (*scan_sta_power_events)(struct wlan_objmgr_pdev *pdev,
|
||||
int event_type, int event_status);
|
||||
void (*scan_connection_lost)(struct wlan_objmgr_pdev *pdev);
|
||||
void (*scan_end)(struct wlan_objmgr_pdev *pdev);
|
||||
uint32_t (*get_wifi_iface_id) (struct wlan_objmgr_pdev *pdev);
|
||||
#ifdef CMN_VDEV_MGR_TGT_IF_ENABLE
|
||||
QDF_STATUS (*vdev_mlme_attach)(struct wlan_objmgr_psoc *psoc);
|
||||
QDF_STATUS (*vdev_mlme_detach)(struct wlan_objmgr_psoc *psoc);
|
||||
QDF_STATUS (*vdev_mlme_rsp_timer_mgmt)(struct wlan_objmgr_vdev *vdev,
|
||||
qdf_timer_t *rsp_timer,
|
||||
bool flag);
|
||||
QDF_STATUS (*vdev_create_send)(struct wlan_objmgr_vdev *vdev,
|
||||
struct vdev_create_params *param);
|
||||
QDF_STATUS (*vdev_create_complete)(struct wlan_objmgr_vdev *vdev);
|
||||
QDF_STATUS (*vdev_start_send)(struct wlan_objmgr_vdev *vdev,
|
||||
struct vdev_start_params *param);
|
||||
QDF_STATUS (*vdev_up_send)(struct wlan_objmgr_vdev *vdev,
|
||||
struct vdev_up_params *param);
|
||||
QDF_STATUS (*vdev_delete_send)(struct wlan_objmgr_vdev *vdev,
|
||||
struct vdev_delete_params *param);
|
||||
QDF_STATUS (*vdev_stop_send)(struct wlan_objmgr_vdev *vdev,
|
||||
struct vdev_stop_params *param);
|
||||
QDF_STATUS (*vdev_down_send)(struct wlan_objmgr_vdev *vdev,
|
||||
struct vdev_down_params *param);
|
||||
QDF_STATUS (*vdev_set_param_send)(struct wlan_objmgr_vdev *vdev,
|
||||
struct vdev_set_params *param);
|
||||
QDF_STATUS (*vdev_set_nac_rssi_send)(
|
||||
struct wlan_objmgr_vdev *vdev,
|
||||
struct vdev_scan_nac_rssi_params *param);
|
||||
QDF_STATUS (*vdev_set_neighbour_rx_cmd_send)(
|
||||
struct wlan_objmgr_vdev *vdev,
|
||||
struct set_neighbour_rx_params *param,
|
||||
uint8_t *mac);
|
||||
QDF_STATUS (*vdev_sifs_trigger_send)(
|
||||
struct wlan_objmgr_vdev *vdev,
|
||||
struct sifs_trigger_param *param);
|
||||
QDF_STATUS (*vdev_set_custom_aggr_size_cmd_send)(
|
||||
struct wlan_objmgr_vdev *vdev,
|
||||
struct set_custom_aggr_size_params *param);
|
||||
QDF_STATUS (*vdev_config_ratemask_cmd_send)(
|
||||
struct wlan_objmgr_vdev *vdev,
|
||||
struct config_ratemask_params *param);
|
||||
QDF_STATUS (*peer_flush_tids_send)(
|
||||
struct wlan_objmgr_vdev *vdev,
|
||||
struct peer_flush_params *param);
|
||||
QDF_STATUS (*multiple_vdev_restart_req_cmd)(
|
||||
struct wlan_objmgr_pdev *pdev,
|
||||
struct multiple_vdev_restart_params *param);
|
||||
QDF_STATUS (*beacon_cmd_send)(struct wlan_objmgr_vdev *vdev,
|
||||
struct beacon_params *param);
|
||||
QDF_STATUS (*beacon_tmpl_send)(struct wlan_objmgr_vdev *vdev,
|
||||
struct beacon_tmpl_params *param);
|
||||
QDF_STATUS (*vdev_bcn_miss_offload_send)(struct wlan_objmgr_vdev *vdev);
|
||||
QDF_STATUS (*vdev_sta_ps_param_send)(struct wlan_objmgr_vdev *vdev,
|
||||
struct sta_ps_params *param);
|
||||
QDF_STATUS (*target_is_pre_lithium)(struct wlan_objmgr_psoc *psoc);
|
||||
QDF_STATUS (*vdev_mgr_resp_timer_mgmt)(struct wlan_objmgr_vdev *vdev,
|
||||
qdf_timer_t *rsp_timer,
|
||||
bool init);
|
||||
#endif
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1191,6 +1282,43 @@ struct wlan_lmac_if_dfs_rx_ops {
|
||||
bool *bw_reduce);
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wlan_lmac_if_mlme_rx_ops: Function pointer to call MLME functions
|
||||
* @wlan_mlme_scan_start: function to start scan
|
||||
* @wlan_mlme_register_pm_event_handler: function to register pm event
|
||||
* @wlan_mlme_unregister_pm_event_handler: function unregister for pm event
|
||||
* @wlan_mlme_register_vdev_event_handler: function to register for vdev event
|
||||
* @wlan_mlme_unregister_vdev_event_handler: functiont o unregister for vdev
|
||||
* event
|
||||
* @wlan_mlme_send_probe_request: function to send probe
|
||||
* @wlan_mlme_resmgr_request_bsschan: function to request bsschan
|
||||
* @wlan_mlme_resmgr_request_offchan: function to request offchan
|
||||
* @wlan_mlme_resmgr_active: function to check resmgr status
|
||||
* @wlan_mlme_get_cw_inter_found: function to get cw interference
|
||||
* @wlan_mlme_set_home_channel: function to set home channel
|
||||
* @wlan_mlme_set_channel: function to set channel
|
||||
* @wlan_mlme_start_record_stats: functiont to start record stats
|
||||
* @wlan_mlme_end_record_stats: function to end recording of stats
|
||||
* @wlan_mlme_get_enh_rpt_ind: function to get enhanced repeater index
|
||||
* @wlan_mlme_pause: function to pause mlme
|
||||
* @wlan_mlme_unpause: function to unpause mlme
|
||||
* @wlan_mlme_vdev_pause_control: function to set vdev pause control
|
||||
* @wlan_mlme_sta_power_pause: function to set sta power pause
|
||||
* @wlan_mlme_sta_power_unpause: function to set sta power pause
|
||||
* @wlan_mlme_set_vdev_sleep: function to sleep vdev sleep
|
||||
* @wlan_mlme_set_vdev_wakeup: function to set vdev wakeup
|
||||
* @wlan_mlme_get_traffic_indication_timestamp: function to get tid timestamp
|
||||
* @wlan_mlme_get_acs_in_progress: function to get ACS progress
|
||||
* @wlan_mlme_end_scan: function to end scan
|
||||
* @mlme_get_rsp_timer: function to get vdev mgr response timer
|
||||
* @mlme_response_timeout_cb: function to trigger on response time expiry
|
||||
* @mlme_start_response: function to handle vdev start response
|
||||
* @mlme_stop_response: function to handle vdev stop response
|
||||
* @mlme_delete_response: function to handle vdev delete response
|
||||
* @mlme_offload_bcn_tx_status_event_handle: function to get offload beacon tx
|
||||
* status
|
||||
* @mlme_tbttoffset_update_handle: function to handle tbttoffset event
|
||||
*/
|
||||
struct wlan_lmac_if_mlme_rx_ops {
|
||||
|
||||
void (*wlan_mlme_scan_start)(struct wlan_objmgr_pdev *pdev);
|
||||
@@ -1248,6 +1376,27 @@ struct wlan_lmac_if_mlme_rx_ops {
|
||||
int (*wlan_mlme_get_acs_in_progress)(struct wlan_objmgr_pdev *pdev,
|
||||
uint8_t vdev_id);
|
||||
void (*wlan_mlme_end_scan)(struct wlan_objmgr_pdev *pdev);
|
||||
|
||||
#ifdef CMN_VDEV_MGR_TGT_IF_ENABLE
|
||||
struct vdev_response_timer *(*vdev_mgr_get_response_timer_info)(
|
||||
struct wlan_objmgr_vdev *vdev);
|
||||
void (*vdev_mgr_response_timeout_cb)(struct wlan_objmgr_vdev *vdev);
|
||||
QDF_STATUS (*vdev_mgr_start_response)(
|
||||
struct wlan_objmgr_psoc *psoc,
|
||||
struct vdev_start_response *rsp);
|
||||
QDF_STATUS (*vdev_mgr_stop_response)(
|
||||
struct wlan_objmgr_psoc *psoc,
|
||||
struct vdev_stop_response *rsp);
|
||||
QDF_STATUS (*vdev_mgr_delete_response)(
|
||||
struct wlan_objmgr_psoc *psoc,
|
||||
struct vdev_delete_response *rsp);
|
||||
QDF_STATUS (*vdev_mgr_offload_bcn_tx_status_event_handle)(
|
||||
uint32_t vdev_id,
|
||||
uint32_t tx_status);
|
||||
QDF_STATUS (*vdev_mgr_tbttoffset_update_handle)(
|
||||
uint32_t num_vdevs,
|
||||
bool is_ext);
|
||||
#endif
|
||||
};
|
||||
|
||||
#ifdef WLAN_SUPPORT_GREEN_AP
|
||||
|
@@ -65,6 +65,10 @@
|
||||
#include <wlan_cp_stats_tgt_api.h>
|
||||
#endif /* QCA_SUPPORT_CP_STATS */
|
||||
|
||||
#ifdef CMN_VDEV_MGR_TGT_IF_ENABLE
|
||||
#include <wlan_vdev_mgr_tgt_if_rx_api.h>
|
||||
#endif
|
||||
|
||||
/* Function pointer for OL/WMA specific UMAC tx_ops
|
||||
* registration.
|
||||
*/
|
||||
@@ -72,6 +76,19 @@ QDF_STATUS (*wlan_lmac_if_umac_tx_ops_register)
|
||||
(struct wlan_lmac_if_tx_ops *tx_ops);
|
||||
qdf_export_symbol(wlan_lmac_if_umac_tx_ops_register);
|
||||
|
||||
#ifdef CMN_VDEV_MGR_TGT_IF_ENABLE
|
||||
static void
|
||||
tgt_vdev_mgr_rx_ops_register(struct wlan_lmac_if_rx_ops *rx_ops)
|
||||
{
|
||||
tgt_vdev_mgr_register_rx_ops(rx_ops);
|
||||
}
|
||||
#else
|
||||
static void
|
||||
tgt_vdev_mgr_rx_ops_register(struct wlan_lmac_if_rx_ops *rx_ops)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef QCA_SUPPORT_CP_STATS
|
||||
/**
|
||||
* wlan_lmac_if_cp_stats_rx_ops_register() - API to register cp stats Rx Ops
|
||||
@@ -516,6 +533,9 @@ wlan_lmac_if_umac_rx_ops_register(struct wlan_lmac_if_rx_ops *rx_ops)
|
||||
/* FILS Discovery */
|
||||
wlan_lmac_if_fd_rx_ops_register(rx_ops);
|
||||
|
||||
/* MLME rx_ops */
|
||||
tgt_vdev_mgr_rx_ops_register(rx_ops);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user