From 314a0f77863e06467c4e41df606df6d8f85309f0 Mon Sep 17 00:00:00 2001 From: Padma Raghunathan Date: Tue, 7 Mar 2017 12:01:00 +0530 Subject: [PATCH] qcacmn: MLME tx/rx ops for DA scan - DA scan state machine is moved to LMAC from UMAC - Functionalities in UMAC required by LMAC scan are accessed through tx ops and rx ops framework - These functionalities are specific to DA, hence distinguished by having them in seperate mlme_ops structure instead of mixing with common scan_ops structure FR 38661: UMAC Convergence: Direct Attach Separation Change-Id: I5177f20d41b7c1788629bcf10d60e4ad9642e0a6 CRs-Fixed: 2037656 --- .../lmac_if/inc/wlan_lmac_if_def.h | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/umac/global_umac_dispatcher/lmac_if/inc/wlan_lmac_if_def.h b/umac/global_umac_dispatcher/lmac_if/inc/wlan_lmac_if_def.h index 0955c3b46a..baa07d1291 100644 --- a/umac/global_umac_dispatcher/lmac_if/inc/wlan_lmac_if_def.h +++ b/umac/global_umac_dispatcher/lmac_if/inc/wlan_lmac_if_def.h @@ -20,6 +20,7 @@ #ifndef _WLAN_LMAC_IF_DEF_H_ #define _WLAN_LMAC_IF_DEF_H_ +#include #include "qdf_status.h" #include "wlan_objmgr_cmn.h" #ifdef DFS_COMPONENT_ENABLE @@ -95,6 +96,13 @@ struct wlan_lmac_if_scan_tx_ops { }; +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); +}; + /** * struct wlan_lmac_if_scan_rx_ops - south bound rx function pointers for scan * @scan_ev_handler: scan event handler @@ -559,6 +567,7 @@ struct wlan_lmac_if_tx_ops { #ifdef CONVERGED_TDLS_ENABLE struct wlan_lmac_if_tdls_tx_ops tdls_tx_ops; #endif + struct wlan_lmac_if_mlme_tx_ops mops; }; /** @@ -836,6 +845,64 @@ struct wlan_lmac_if_dfs_rx_ops { #endif }; +struct wlan_lmac_if_mlme_rx_ops { + + void (*wlan_mlme_scan_start)(struct wlan_objmgr_pdev *pdev); + void (*wlan_mlme_register_pm_event_handler)( + struct wlan_objmgr_pdev *pdev, + uint8_t vdev_id); + void (*wlan_mlme_unregister_pm_event_handler)( + struct wlan_objmgr_pdev *pdev, + uint8_t vdev_id); + QDF_STATUS (*wlan_mlme_register_vdev_event_handler)( + struct wlan_objmgr_pdev *pdev, + uint8_t vdev_id); + QDF_STATUS (*wlan_mlme_unregister_vdev_event_handler)( + struct wlan_objmgr_pdev *pdev, + uint8_t vdev_id); + int (*wlan_mlme_send_probe_request)(struct wlan_objmgr_pdev *pdev, + uint8_t vdev_id, + u_int8_t *destination, + u_int8_t *bssid, + u_int8_t *ssid, + u_int32_t ssidlen, + u_int8_t *ie, + size_t len); + int (*wlan_mlme_resmgr_request_bsschan)(struct wlan_objmgr_pdev *pdev); + int (*wlan_mlme_resmgr_request_offchan)(struct wlan_objmgr_pdev *pdev, + u_int32_t freq, + u_int32_t flags, + u_int32_t estimated_offchannel_time); + int (*wlan_mlme_resmgr_active)(struct wlan_objmgr_pdev *pdev); + int (*wlan_mlme_get_cw_inter_found)(struct wlan_objmgr_pdev *pdev); + int (*wlan_mlme_set_home_channel)(struct wlan_objmgr_pdev *pdev, + uint8_t vdev_id); + int (*wlan_mlme_set_channel)(struct wlan_objmgr_pdev *pdev, + u_int32_t freq, + u_int32_t flags); + void (*wlan_mlme_start_record_stats)(struct wlan_objmgr_pdev *pdev); + void (*wlan_mlme_end_record_stats)(struct wlan_objmgr_pdev *pdev); + int (*wlan_mlme_get_enh_rpt_ind)(struct wlan_objmgr_pdev *pdev); + int (*wlan_mlme_pause)(struct wlan_objmgr_pdev *pdev); + void (*wlan_mlme_unpause)(struct wlan_objmgr_pdev *pdev); + int (*wlan_mlme_vdev_pause_control)(struct wlan_objmgr_pdev *pdev, + uint8_t vdev_id); + int (*wlan_mlme_sta_power_pause)( + struct wlan_objmgr_pdev *pdev, + uint8_t vdev_id, + u_int32_t timeout); + int (*wlan_mlme_sta_power_unpause)(struct wlan_objmgr_pdev *pdev, + uint8_t vdev_id); + int (*wlan_mlme_set_vdev_sleep)(struct wlan_objmgr_pdev *pdev, + uint8_t vdev_id); + int (*wlan_mlme_set_vdev_wakeup)(struct wlan_objmgr_pdev *pdev, + uint8_t vdev_id); + qdf_time_t (*wlan_mlme_get_traffic_indication_timestamp)( + struct wlan_objmgr_pdev *pdev); + 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); +}; /** * struct wlan_lmac_if_rx_ops - south bound rx function pointers * @mgmt_txrx_tx_ops: mgmt txrx rx ops @@ -877,6 +944,7 @@ struct wlan_lmac_if_rx_ops { #ifdef CONVERGED_TDLS_ENABLE struct wlan_lmac_if_tdls_rx_ops tdls_rx_ops; #endif + struct wlan_lmac_if_mlme_rx_ops mops; }; /* Function pointer to call legacy tx_ops registration in OL/WMA.