From 21ff0a53bf3305af828ae9e6b4e74a8a84768678 Mon Sep 17 00:00:00 2001 From: Abhishek Ambure Date: Mon, 6 May 2019 17:44:05 +0530 Subject: [PATCH] qcacmn: Common code changes for VDEV conversion This change is required by MCL for VDEV conversion. This change adds target_if all common code. Change-Id: If43cbbe12c9b4a2bc7fc46ff01f24a2fb6fda09e CRs-Fixed: 2460791 --- .../vdev_mgr/inc/target_if_vdev_mgr_rx_ops.h | 53 +++++++++++++++++++ .../vdev_mgr/inc/target_if_vdev_mgr_tx_ops.h | 4 +- .../vdev_mgr/src/target_if_vdev_mgr_rx_ops.c | 18 +++---- .../vdev_mgr/src/target_if_vdev_mgr_tx_ops.c | 2 +- umac/mlme/include/wlan_vdev_mlme.h | 3 ++ umac/mlme/vdev_mgr/core/src/vdev_mgr_ops.c | 1 + umac/mlme/vdev_mgr/core/src/vdev_mgr_ops.h | 10 ++-- .../inc/wlan_vdev_mgr_tgt_if_rx_api.h | 16 +++++- .../src/wlan_vdev_mgr_tgt_if_rx_api.c | 2 +- .../dispatcher/src/wlan_vdev_mgr_ucfg_api.c | 1 + .../dispatcher/src/wlan_vdev_mgr_utils_api.c | 19 +++++++ wmi/src/wmi_unified_api.c | 1 + wmi/src/wmi_unified_tlv.c | 4 ++ 13 files changed, 114 insertions(+), 20 deletions(-) diff --git a/target_if/mlme/vdev_mgr/inc/target_if_vdev_mgr_rx_ops.h b/target_if/mlme/vdev_mgr/inc/target_if_vdev_mgr_rx_ops.h index fbfd8f45e0..991c653771 100644 --- a/target_if/mlme/vdev_mgr/inc/target_if_vdev_mgr_rx_ops.h +++ b/target_if/mlme/vdev_mgr/inc/target_if_vdev_mgr_rx_ops.h @@ -39,6 +39,59 @@ static inline bool target_if_vdev_mgr_is_driver_unloading(void) return false; } +/** + * target_if_vdev_mgr_delete_response_handler() - API to handle vdev delete + * response + * @scn: pointer to scan object + * @data: pointer to data + * @datalen: length of data + * + * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error + */ +int target_if_vdev_mgr_delete_response_handler( + ol_scn_t scn, + uint8_t *data, + uint32_t datalen); + +/** + * target_if_vdev_mgr_offload_bcn_tx_status_handler() - API to handle beacon + * tx status event + * @scn: pointer to scan object + * @data: pointer to data + * @datalen: length of data + * + * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error + */ +int target_if_vdev_mgr_offload_bcn_tx_status_handler(ol_scn_t scn, + uint8_t *data, + uint32_t datalen); + +/** + * target_if_vdev_mgr_tbttoffset_update_handler() - API to handle tbtt offset + * update event + * @scn: pointer to scan object + * @data: pointer to data + * @datalen: length of data + * + * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error + */ +int target_if_vdev_mgr_tbttoffset_update_handler(ol_scn_t scn, + uint8_t *data, + uint32_t datalen); + +/** + * target_if_vdev_mgr_ext_tbttoffset_update_handler() - API to handle ext tbtt + * offset update event + * @scn: pointer to scan object + * @data: pointer to data + * @datalen: length of data + * + * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error + */ +int target_if_vdev_mgr_ext_tbttoffset_update_handler(ol_scn_t scn, + uint8_t *data, + uint32_t datalen); + /** * target_if_vdev_mgr_is_panic_on_bug: API to get panic on bug * diff --git a/target_if/mlme/vdev_mgr/inc/target_if_vdev_mgr_tx_ops.h b/target_if/mlme/vdev_mgr/inc/target_if_vdev_mgr_tx_ops.h index fb643fa91e..0707c9632b 100644 --- a/target_if/mlme/vdev_mgr/inc/target_if_vdev_mgr_tx_ops.h +++ b/target_if/mlme/vdev_mgr/inc/target_if_vdev_mgr_tx_ops.h @@ -71,14 +71,14 @@ target_if_vdev_mgr_register_tx_ops(struct wlan_lmac_if_tx_ops *tx_ops); * Return: NA */ #ifdef VDEV_ASSERT_MANAGEMENT -static void target_if_vdev_mgr_assert_mgmt( +static inline void target_if_vdev_mgr_assert_mgmt( struct wlan_objmgr_vdev *vdev, struct vdev_response_timer *vdev_rsp, uint8_t set_bit) { } #else -static void target_if_vdev_mgr_assert_mgmt( +static inline void target_if_vdev_mgr_assert_mgmt( struct wlan_objmgr_vdev *vdev, struct vdev_response_timer *vdev_rsp, uint8_t set_bit) diff --git a/target_if/mlme/vdev_mgr/src/target_if_vdev_mgr_rx_ops.c b/target_if/mlme/vdev_mgr/src/target_if_vdev_mgr_rx_ops.c index f78f75f2c6..275c709c21 100644 --- a/target_if/mlme/vdev_mgr/src/target_if_vdev_mgr_rx_ops.c +++ b/target_if/mlme/vdev_mgr/src/target_if_vdev_mgr_rx_ops.c @@ -31,6 +31,7 @@ #include #include #include +#include void target_if_vdev_mgr_rsp_timer_mgmt_cb(void *arg) { @@ -322,7 +323,7 @@ release_vdev_target_if_ref: return qdf_status_to_os_return(status); } -static int target_if_vdev_mgr_delete_response_handler( +int target_if_vdev_mgr_delete_response_handler( ol_scn_t scn, uint8_t *data, uint32_t datalen) @@ -482,10 +483,10 @@ release_vdev_target_if_ref: return qdf_status_to_os_return(status); } -static int target_if_vdev_mgr_offload_bcn_tx_status_handler( - ol_scn_t scn, - uint8_t *data, - uint32_t datalen) +int target_if_vdev_mgr_offload_bcn_tx_status_handler( + ol_scn_t scn, + uint8_t *data, + uint32_t datalen) { QDF_STATUS status; struct wlan_objmgr_psoc *psoc; @@ -528,9 +529,8 @@ static int target_if_vdev_mgr_offload_bcn_tx_status_handler( return qdf_status_to_os_return(status); } -static int target_if_vdev_mgr_tbttoffset_update_handler( - ol_scn_t scn, - uint8_t *data, +int target_if_vdev_mgr_tbttoffset_update_handler( + ol_scn_t scn, uint8_t *data, uint32_t datalen) { QDF_STATUS status; @@ -572,7 +572,7 @@ static int target_if_vdev_mgr_tbttoffset_update_handler( return qdf_status_to_os_return(status); } -static int target_if_vdev_mgr_ext_tbttoffset_update_handler( +int target_if_vdev_mgr_ext_tbttoffset_update_handler( ol_scn_t scn, uint8_t *data, uint32_t datalen) diff --git a/target_if/mlme/vdev_mgr/src/target_if_vdev_mgr_tx_ops.c b/target_if/mlme/vdev_mgr/src/target_if_vdev_mgr_tx_ops.c index 49b6ddaa7d..c1c032649c 100644 --- a/target_if/mlme/vdev_mgr/src/target_if_vdev_mgr_tx_ops.c +++ b/target_if/mlme/vdev_mgr/src/target_if_vdev_mgr_tx_ops.c @@ -35,6 +35,7 @@ #include #include #include +#include static QDF_STATUS target_if_vdev_mgr_register_event_handler( struct wlan_objmgr_psoc *psoc) @@ -760,7 +761,6 @@ static QDF_STATUS target_if_vdev_mgr_config_ratemask_cmd_send( status = wmi_unified_vdev_config_ratemask_cmd_send(wmi_handle, param); - return status; } diff --git a/umac/mlme/include/wlan_vdev_mlme.h b/umac/mlme/include/wlan_vdev_mlme.h index d18466dbea..12d0017b58 100644 --- a/umac/mlme/include/wlan_vdev_mlme.h +++ b/umac/mlme/include/wlan_vdev_mlme.h @@ -35,6 +35,9 @@ struct vdev_mlme_obj; #define WLAN_VDEV_MLME_TYPE_STA 0x2 #define WLAN_VDEV_MLME_TYPE_IBSS 0x3 #define WLAN_VDEV_MLME_TYPE_MONITOR 0x4 +#define WLAN_VDEV_MLME_TYPE_NAN 0x5 +#define WLAN_VDEV_MLME_TYPE_OCB 0x6 +#define WLAN_VDEV_MLME_TYPE_NDI 0x7 /* values for vdev_subtype */ #define WLAN_VDEV_MLME_SUBTYPE_P2P_DEVICE 0x1 diff --git a/umac/mlme/vdev_mgr/core/src/vdev_mgr_ops.c b/umac/mlme/vdev_mgr/core/src/vdev_mgr_ops.c index 70404a1567..493a73f4ea 100644 --- a/umac/mlme/vdev_mgr/core/src/vdev_mgr_ops.c +++ b/umac/mlme/vdev_mgr/core/src/vdev_mgr_ops.c @@ -34,6 +34,7 @@ #include #include #include +#include static QDF_STATUS vdev_mgr_create_param_update( struct vdev_mlme_obj *mlme_obj, diff --git a/umac/mlme/vdev_mgr/core/src/vdev_mgr_ops.h b/umac/mlme/vdev_mgr/core/src/vdev_mgr_ops.h index 06ba4193b9..df683dc63f 100644 --- a/umac/mlme/vdev_mgr/core/src/vdev_mgr_ops.h +++ b/umac/mlme/vdev_mgr/core/src/vdev_mgr_ops.h @@ -223,11 +223,11 @@ QDF_STATUS vdev_mgr_bcn_miss_offload_send(struct vdev_mlme_obj *mlme_obj); * * Return: QDF_STATUS - Success or Failure */ -QDF_STATUS vdev_mlme_multiple_restart_send(struct wlan_objmgr_pdev *pdev, - struct mlme_channel_param *chan, - uint32_t disable_hw_ack, - uint32_t *vdev_ids, - uint32_t num_vdevs); +QDF_STATUS vdev_mgr_multiple_restart_send(struct wlan_objmgr_pdev *pdev, + struct mlme_channel_param *chan, + uint32_t disable_hw_ack, + uint32_t *vdev_ids, + uint32_t num_vdevs); /** * vdev_mgr_peer_delete_all_send() – MLME API to send peer delete all request diff --git a/umac/mlme/vdev_mgr/dispatcher/inc/wlan_vdev_mgr_tgt_if_rx_api.h b/umac/mlme/vdev_mgr/dispatcher/inc/wlan_vdev_mgr_tgt_if_rx_api.h index b8b650566f..92669e53ef 100644 --- a/umac/mlme/vdev_mgr/dispatcher/inc/wlan_vdev_mgr_tgt_if_rx_api.h +++ b/umac/mlme/vdev_mgr/dispatcher/inc/wlan_vdev_mgr_tgt_if_rx_api.h @@ -30,15 +30,27 @@ #include /** - * tgt_vdev_mgr_register_rx_ops(): API to register rx ops with lmac + * tgt_vdev_mgr_register_rx_ops() - API to register rx ops with lmac * @rx_ops: rx ops struct * * Return: none */ void tgt_vdev_mgr_register_rx_ops(struct wlan_lmac_if_rx_ops *rx_ops); + +/** + * tgt_vdev_mgr_ext_tbttoffset_update_handle() - API to handle ext tbtt offset + * update event + * @num_vdevs: number of vdevs + * @is_ext: ext is set/reset + * + * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error + */ +QDF_STATUS +tgt_vdev_mgr_ext_tbttoffset_update_handle(uint32_t num_vdevs, bool is_ext); + #else /** - * tgt_vdev_mgr_register_rx_ops(): API to register rx ops with lmac + * tgt_vdev_mgr_register_rx_ops() - API to register rx ops with lmac * @rx_ops: rx ops struct * * Return: none diff --git a/umac/mlme/vdev_mgr/dispatcher/src/wlan_vdev_mgr_tgt_if_rx_api.c b/umac/mlme/vdev_mgr/dispatcher/src/wlan_vdev_mgr_tgt_if_rx_api.c index 6dfba4e5be..674c160227 100644 --- a/umac/mlme/vdev_mgr/dispatcher/src/wlan_vdev_mgr_tgt_if_rx_api.c +++ b/umac/mlme/vdev_mgr/dispatcher/src/wlan_vdev_mgr_tgt_if_rx_api.c @@ -208,7 +208,7 @@ tgt_vdev_mgr_tbttoffset_update_handler(uint32_t num_vdevs, bool is_ext) return status; } -static QDF_STATUS +QDF_STATUS tgt_vdev_mgr_ext_tbttoffset_update_handle(uint32_t num_vdevs, bool is_ext) { QDF_STATUS status = QDF_STATUS_E_FAILURE; diff --git a/umac/mlme/vdev_mgr/dispatcher/src/wlan_vdev_mgr_ucfg_api.c b/umac/mlme/vdev_mgr/dispatcher/src/wlan_vdev_mgr_ucfg_api.c index 779755df81..6582f3cc7e 100644 --- a/umac/mlme/vdev_mgr/dispatcher/src/wlan_vdev_mgr_ucfg_api.c +++ b/umac/mlme/vdev_mgr/dispatcher/src/wlan_vdev_mgr_ucfg_api.c @@ -28,6 +28,7 @@ #include #include #include +#include void ucfg_wlan_vdev_mgr_get_param_bssid( struct wlan_objmgr_vdev *vdev, diff --git a/umac/mlme/vdev_mgr/dispatcher/src/wlan_vdev_mgr_utils_api.c b/umac/mlme/vdev_mgr/dispatcher/src/wlan_vdev_mgr_utils_api.c index 87f89e8e86..192c6ad07b 100644 --- a/umac/mlme/vdev_mgr/dispatcher/src/wlan_vdev_mgr_utils_api.c +++ b/umac/mlme/vdev_mgr/dispatcher/src/wlan_vdev_mgr_utils_api.c @@ -26,6 +26,7 @@ #include #include #include +#include static QDF_STATUS vdev_mgr_config_ratemask_update( struct vdev_mlme_obj *mlme_obj, @@ -60,6 +61,24 @@ wlan_util_vdev_get_cdp_txrx_opmode(struct wlan_objmgr_vdev *vdev) case QDF_MONITOR_MODE: cdp_txrx_opmode = wlan_op_mode_monitor; break; + case QDF_P2P_DEVICE_MODE: + cdp_txrx_opmode = wlan_op_mode_ap; + break; + case QDF_P2P_CLIENT_MODE: + cdp_txrx_opmode = wlan_op_mode_sta; + break; + case QDF_P2P_GO_MODE: + cdp_txrx_opmode = wlan_op_mode_ap; + break; + case QDF_OCB_MODE: + cdp_txrx_opmode = wlan_op_mode_ocb; + break; + case QDF_IBSS_MODE: + cdp_txrx_opmode = wlan_op_mode_ibss; + break; + case QDF_NDI_MODE: + cdp_txrx_opmode = wlan_op_mode_ndi; + break; default: cdp_txrx_opmode = wlan_op_mode_unknown; }; diff --git a/wmi/src/wmi_unified_api.c b/wmi/src/wmi_unified_api.c index 860032db85..899567ca36 100644 --- a/wmi/src/wmi_unified_api.c +++ b/wmi/src/wmi_unified_api.c @@ -20,6 +20,7 @@ #include "wmi_unified_param.h" #include "qdf_module.h" #include "cdp_txrx_cmn_struct.h" +#include static const wmi_host_channel_width mode_to_width[WMI_HOST_MODE_MAX] = { [WMI_HOST_MODE_11A] = WMI_HOST_CHAN_WIDTH_20, diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c index dffa985b89..90a3a90160 100644 --- a/wmi/src/wmi_unified_tlv.c +++ b/wmi/src/wmi_unified_tlv.c @@ -60,6 +60,7 @@ #ifdef WMI_AP_SUPPORT #include "wmi_unified_ap_api.h" #endif +#include /* HTC service ids for WMI for multi-radio */ static const uint32_t multi_svc_ids[] = {WMI_CONTROL_SVC, @@ -11942,6 +11943,9 @@ struct wmi_ops tlv_ops = { #ifdef WLAN_MWS_INFO_DEBUGFS .send_mws_coex_status_req_cmd = send_mws_coex_status_req_cmd_tlv, #endif +#ifdef TGT_IF_VDEV_MGR_CONV + .extract_vdev_delete_resp = extract_vdev_delete_resp_tlv, +#endif }; /**