diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c index abbe1f69deeb..06ca262b8a98 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.c +++ b/core/hdd/src/wlan_hdd_cfg80211.c @@ -73,9 +73,7 @@ #include #include -#ifdef FEATURE_WLAN_EXTSCAN #include "wlan_hdd_ext_scan.h" -#endif #ifdef WLAN_FEATURE_LINK_LAYER_STATS #include "wlan_hdd_stats.h" diff --git a/core/hdd/src/wlan_hdd_cfg80211.h b/core/hdd/src/wlan_hdd_cfg80211.h index f12b52583926..604601e905c0 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.h +++ b/core/hdd/src/wlan_hdd_cfg80211.h @@ -361,8 +361,12 @@ int wlan_hdd_send_avoid_freq_for_dnbs(struct hdd_context *hdd_ctx, #ifdef FEATURE_WLAN_EXTSCAN void wlan_hdd_cfg80211_extscan_callback(void *ctx, const uint16_t evType, void *pMsg); +#else +static inline void wlan_hdd_cfg80211_extscan_callback(void *ctx, + const uint16_t evType, void *pMsg) +{ +} #endif /* FEATURE_WLAN_EXTSCAN */ - /** * wlan_hdd_rso_cmd_status_cb() - HDD callback to read RSO command status * @ctx: void pointer to hdd context diff --git a/core/hdd/src/wlan_hdd_ext_scan.h b/core/hdd/src/wlan_hdd_ext_scan.h index e7a9a80f8e5f..3c98fe213e92 100644 --- a/core/hdd/src/wlan_hdd_ext_scan.h +++ b/core/hdd/src/wlan_hdd_ext_scan.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2014, 2017 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2014, 2017-2018 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -28,6 +28,8 @@ struct hdd_context; +#define EXTSCAN_EVENT_BUF_SIZE 4096 + #ifdef FEATURE_WLAN_EXTSCAN #include "wlan_hdd_main.h" @@ -39,8 +41,6 @@ struct hdd_context; * on the limit based on the data requirements. */ -#define EXTSCAN_EVENT_BUF_SIZE 4096 - int wlan_hdd_cfg80211_extscan_start(struct wiphy *wiphy, struct wireless_dev *wdev, const void *data, int data_len); @@ -104,7 +104,7 @@ void wlan_hdd_cfg80211_extscan_init(struct hdd_context *hdd_ctx); #else /* FEATURE_WLAN_EXTSCAN */ -static void wlan_hdd_cfg80211_extscan_init(struct hdd_context *hdd_ctx) +static inline void wlan_hdd_cfg80211_extscan_init(struct hdd_context *hdd_ctx) { } diff --git a/core/mac/inc/sir_api.h b/core/mac/inc/sir_api.h index eb46e3f46ab4..caa6dc75a397 100644 --- a/core/mac/inc/sir_api.h +++ b/core/mac/inc/sir_api.h @@ -90,13 +90,6 @@ typedef uint8_t tSirVersionString[SIR_VERSION_STRING_LEN]; #define MAXNUM_PERIODIC_TX_PTRNS 6 #define WIFI_SCANNING_MAC_OUI_LENGTH 3 -#ifdef FEATURE_WLAN_EXTSCAN - -#define WLAN_EXTSCAN_MAX_CHANNELS 36 -#define WLAN_EXTSCAN_MAX_BUCKETS 16 -#define WLAN_EXTSCAN_MAX_HOTLIST_APS 128 -#define WLAN_EXTSCAN_MAX_SIGNIFICANT_CHANGE_APS 64 - /* This should not be greater than MAX_NUMBER_OF_CONC_CONNECTIONS */ #define MAX_VDEV_SUPPORTED 4 @@ -122,34 +115,6 @@ typedef uint8_t tSirVersionString[SIR_VERSION_STRING_LEN]; /* Maximum number of peers for SAP */ #define SIR_SAP_MAX_NUM_PEERS 32 -typedef enum { - eSIR_EXTSCAN_INVALID, - eSIR_EXTSCAN_START_RSP, - eSIR_EXTSCAN_STOP_RSP, - eSIR_EXTSCAN_CACHED_RESULTS_RSP, - eSIR_EXTSCAN_SET_BSSID_HOTLIST_RSP, - eSIR_EXTSCAN_RESET_BSSID_HOTLIST_RSP, - eSIR_EXTSCAN_SET_SIGNIFICANT_WIFI_CHANGE_RSP, - eSIR_EXTSCAN_RESET_SIGNIFICANT_WIFI_CHANGE_RSP, - - eSIR_EXTSCAN_GET_CAPABILITIES_IND, - eSIR_EXTSCAN_HOTLIST_MATCH_IND, - eSIR_EXTSCAN_SIGNIFICANT_WIFI_CHANGE_RESULTS_IND, - eSIR_EXTSCAN_CACHED_RESULTS_IND, - eSIR_EXTSCAN_SCAN_RES_AVAILABLE_IND, - eSIR_EXTSCAN_SCAN_PROGRESS_EVENT_IND, - eSIR_EXTSCAN_FULL_SCAN_RESULT_IND, - eSIR_EPNO_NETWORK_FOUND_IND, - eSIR_PASSPOINT_NETWORK_FOUND_IND, - eSIR_EXTSCAN_SET_SSID_HOTLIST_RSP, - eSIR_EXTSCAN_RESET_SSID_HOTLIST_RSP, - - /* Keep this last */ - eSIR_EXTSCAN_CALLBACK_TYPE_MAX, -} tSirExtScanCallbackType; - -#endif /* FEATURE_WLAN_EXTSCAN */ - #define SIR_KRK_KEY_LEN 16 #define SIR_BTK_KEY_LEN 32 #define SIR_KCK_KEY_LEN 16 @@ -3923,8 +3888,49 @@ struct roam_offload_synch_fail { #endif +/** + * struct sir_wisa_params - WISA Mode Parameters + * @mode: WISA mode + * @session_id: Session ID of vdev + */ +struct sir_wisa_params { + bool mode; + uint8_t vdev_id; +}; + #ifdef FEATURE_WLAN_EXTSCAN +#define WLAN_EXTSCAN_MAX_CHANNELS 36 +#define WLAN_EXTSCAN_MAX_BUCKETS 16 +#define WLAN_EXTSCAN_MAX_HOTLIST_APS 128 +#define WLAN_EXTSCAN_MAX_SIGNIFICANT_CHANGE_APS 64 + +typedef enum { + eSIR_EXTSCAN_INVALID, + eSIR_EXTSCAN_START_RSP, + eSIR_EXTSCAN_STOP_RSP, + eSIR_EXTSCAN_CACHED_RESULTS_RSP, + eSIR_EXTSCAN_SET_BSSID_HOTLIST_RSP, + eSIR_EXTSCAN_RESET_BSSID_HOTLIST_RSP, + eSIR_EXTSCAN_SET_SIGNIFICANT_WIFI_CHANGE_RSP, + eSIR_EXTSCAN_RESET_SIGNIFICANT_WIFI_CHANGE_RSP, + + eSIR_EXTSCAN_GET_CAPABILITIES_IND, + eSIR_EXTSCAN_HOTLIST_MATCH_IND, + eSIR_EXTSCAN_SIGNIFICANT_WIFI_CHANGE_RESULTS_IND, + eSIR_EXTSCAN_CACHED_RESULTS_IND, + eSIR_EXTSCAN_SCAN_RES_AVAILABLE_IND, + eSIR_EXTSCAN_SCAN_PROGRESS_EVENT_IND, + eSIR_EXTSCAN_FULL_SCAN_RESULT_IND, + eSIR_EPNO_NETWORK_FOUND_IND, + eSIR_PASSPOINT_NETWORK_FOUND_IND, + eSIR_EXTSCAN_SET_SSID_HOTLIST_RSP, + eSIR_EXTSCAN_RESET_SSID_HOTLIST_RSP, + + /* Keep this last */ + eSIR_EXTSCAN_CALLBACK_TYPE_MAX, +} tSirExtScanCallbackType; + /** * typedef enum wifi_scan_flags - wifi scan flags * @WIFI_SCAN_FLAG_INTERRUPTED: Indicates that scan results are not complete @@ -4335,16 +4341,6 @@ typedef struct { } tSirExtScanResetBssidHotlistReqParams, *tpSirExtScanResetBssidHotlistReqParams; -/** - * struct sir_wisa_params - WISA Mode Parameters - * @mode: WISA mode - * @session_id: Session ID of vdev - */ -struct sir_wisa_params { - bool mode; - uint8_t vdev_id; -}; - typedef struct { uint32_t requestId; uint8_t sessionId; diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c index fa86acd84309..d44d15d0dab6 100644 --- a/core/sme/src/common/sme_api.c +++ b/core/sme/src/common/sme_api.c @@ -11382,39 +11382,6 @@ QDF_STATUS sme_reset_bss_hotlist(tHalHandle hHal, return status; } -/** - * sme_send_wisa_params(): Pass WISA mode to WMA - * @hal: HAL context - * @wisa_params: pointer to WISA params struct - * @sessionId: SME session id - * - * Pass WISA params to WMA - * - * Return: QDF_STATUS - */ -QDF_STATUS sme_set_wisa_params(tHalHandle hal, - struct sir_wisa_params *wisa_params) -{ - QDF_STATUS status = QDF_STATUS_SUCCESS; - tpAniSirGlobal mac = PMAC_STRUCT(hal); - struct scheduler_msg message = {0}; - struct sir_wisa_params *cds_msg_wisa_params; - - cds_msg_wisa_params = qdf_mem_malloc(sizeof(struct sir_wisa_params)); - if (!cds_msg_wisa_params) - return QDF_STATUS_E_NOMEM; - - *cds_msg_wisa_params = *wisa_params; - status = sme_acquire_global_lock(&mac->sme); - if (QDF_IS_STATUS_SUCCESS(status)) { - message.bodyptr = cds_msg_wisa_params; - message.type = WMA_SET_WISA_PARAMS; - status = scheduler_post_msg(QDF_MODULE_ID_WMA, &message); - sme_release_global_lock(&mac->sme); - } - return status; -} - /* * sme_set_significant_change() - * SME API to set significant change @@ -11726,6 +11693,39 @@ QDF_STATUS sme_ext_scan_register_callback(tHalHandle hHal, } #endif /* FEATURE_WLAN_EXTSCAN */ +/** + * sme_send_wisa_params(): Pass WISA mode to WMA + * @hal: HAL context + * @wisa_params: pointer to WISA params struct + * @sessionId: SME session id + * + * Pass WISA params to WMA + * + * Return: QDF_STATUS + */ +QDF_STATUS sme_set_wisa_params(tHalHandle hal, + struct sir_wisa_params *wisa_params) +{ + QDF_STATUS status = QDF_STATUS_SUCCESS; + tpAniSirGlobal mac = PMAC_STRUCT(hal); + struct scheduler_msg message = {0}; + struct sir_wisa_params *cds_msg_wisa_params; + + cds_msg_wisa_params = qdf_mem_malloc(sizeof(struct sir_wisa_params)); + if (!cds_msg_wisa_params) + return QDF_STATUS_E_NOMEM; + + *cds_msg_wisa_params = *wisa_params; + status = sme_acquire_global_lock(&mac->sme); + if (QDF_IS_STATUS_SUCCESS(status)) { + message.bodyptr = cds_msg_wisa_params; + message.type = WMA_SET_WISA_PARAMS; + status = scheduler_post_msg(QDF_MODULE_ID_WMA, &message); + sme_release_global_lock(&mac->sme); + } + return status; +} + #ifdef WLAN_FEATURE_LINK_LAYER_STATS /* diff --git a/core/wma/inc/wma_internal.h b/core/wma/inc/wma_internal.h index c8f5830101f2..052b7117fd7e 100644 --- a/core/wma/inc/wma_internal.h +++ b/core/wma/inc/wma_internal.h @@ -138,6 +138,7 @@ struct index_vht_data_rate_type { uint16_t ht80_rate[2]; }; +struct tSirWifiScanCmdReqParams; /* * wma_main.c functions declarations */ @@ -348,9 +349,11 @@ int wma_passpoint_match_event_handler(void *handle, #endif +#ifdef FEATURE_WLAN_EXTSCAN +int wma_extscan_wow_event_callback(void *handle, void *event, uint32_t len); + void wma_register_extscan_event_handler(tp_wma_handle wma_handle); -#ifdef FEATURE_WLAN_EXTSCAN QDF_STATUS wma_get_buf_extscan_start_cmd(tp_wma_handle wma_handle, tSirWifiScanCmdReqParams *pstart, wmi_buf_t *buf, int *buf_len); @@ -562,8 +565,6 @@ int wma_beacon_swba_handler(void *handle, uint8_t *event, uint32_t len); int wma_peer_sta_kickout_event_handler(void *handle, u8 *event, u32 len); -int wma_extscan_wow_event_callback(void *handle, void *event, uint32_t len); - int wma_unified_bcntx_status_event_handler(void *handle, uint8_t *cmd_param_info, uint32_t len); diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c index 37f6c9472a01..9e3cf4a87aa5 100644 --- a/core/wma/src/wma_scan_roam.c +++ b/core/wma/src/wma_scan_roam.c @@ -3290,7 +3290,6 @@ int wma_extscan_wow_event_callback(void *handle, void *event, uint32_t len) return 0; } } -#endif /** * wma_register_extscan_event_handler() - register extscan event handler @@ -3346,8 +3345,6 @@ void wma_register_extscan_event_handler(tp_wma_handle wma_handle) WMA_RX_SERIALIZER_CTX); } -#ifdef FEATURE_WLAN_EXTSCAN - /** * wma_extscan_start_stop_event_handler() - extscan start/stop event handler * @handle: wma handle