Loading CORE/HDD/inc/wlan_hdd_cfg.h +8 −0 Original line number Diff line number Diff line Loading @@ -3317,6 +3317,11 @@ This feature requires the dependent cfg.ini "gRoamPrefer5GHz" set to 1 */ #define CFG_ENABLE_SAE_FOR_SAP_MIN (0) #define CFG_ENABLE_SAE_FOR_SAP_MAX (1) #define CFG_SW_PTA_ENABLE_NAME "sw_pta_enable" #define CFG_SW_PTA_ENABLE_DEFAULT (0) #define CFG_SW_PTA_ENABLE_MIN (0) #define CFG_SW_PTA_ENABLE_MAX (1) /*--------------------------------------------------------------------------- Type declarations -------------------------------------------------------------------------*/ Loading Loading @@ -3940,6 +3945,9 @@ typedef struct #ifdef FEATURE_WLAN_LFR uint8_t bssid_blacklist_timeout; #endif #ifdef FEATURE_WLAN_SW_PTA bool is_sw_pta_enabled; #endif } hdd_config_t; /*--------------------------------------------------------------------------- Loading CORE/HDD/inc/wlan_hdd_main.h +18 −0 Original line number Diff line number Diff line Loading @@ -2314,6 +2314,24 @@ void hdd_disable_roaming(hdd_context_t *hdd_ctx); */ void hdd_restore_roaming(hdd_context_t *hdd_ctx); /** * hdd_chan_change_notify() - Function to notify about channel change * @adapter: pointer to adapter * @dev: Net device structure * @oper_chan: New operating channel * @phy_mode: phy mode * * This function is used to notify hostapd/supplicant about the channel change * * Return: Success on intimating userspace * */ VOS_STATUS hdd_chan_change_notify(hdd_adapter_t *adapter, struct net_device *dev, uint8_t oper_chan, eCsrPhyMode phy_mode); int wlan_hdd_check_and_stop_mon(hdd_adapter_t *sta_adapter, bool wait); /** Loading CORE/HDD/src/wlan_hdd_assoc.c +19 −0 Original line number Diff line number Diff line Loading @@ -4414,6 +4414,7 @@ eHalStatus hdd_smeRoamCallback( void *pContext, tCsrRoamInfo *pRoamInfo, tANI_U3 case eCSR_ROAM_STA_CHANNEL_SWITCH: { hdd_adapter_t *pHostapdAdapter = NULL; eCsrPhyMode phy_mode = 0; pHddCtx = WLAN_HDD_GET_CTX(pAdapter); pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter); Loading @@ -4428,6 +4429,24 @@ eHalStatus hdd_smeRoamCallback( void *pContext, tCsrRoamInfo *pRoamInfo, tANI_U3 pHddStaCtx->conn_info.operationChannel = pRoamInfo->chan_info.chan_id; if(pRoamInfo->pProfile) { phy_mode = pRoamInfo->pProfile->phyMode; } status = hdd_chan_change_notify(pAdapter, pAdapter->dev, pRoamInfo->chan_info.chan_id, phy_mode); if(status != VOS_STATUS_SUCCESS) { hddLog(VOS_TRACE_LEVEL_ERROR, "%s: hdd_chan_change_notify failed", __func__); } hddLog(VOS_TRACE_LEVEL_ERROR, "%s: Channel switch event updated to upper layer to %d", __func__, pRoamInfo->chan_info.chan_id); pHostapdAdapter = hdd_get_adapter(pHddCtx, WLAN_HDD_SOFTAP); if (pHostapdAdapter && (test_bit(SOFTAP_BSS_STARTED, Loading CORE/HDD/src/wlan_hdd_cfg.c +23 −0 Original line number Diff line number Diff line Loading @@ -4056,6 +4056,15 @@ REG_VARIABLE( CFG_EXTSCAN_ENABLE, WLAN_PARAM_Integer, CFG_ENABLE_SAE_FOR_SAP_MIN, CFG_ENABLE_SAE_FOR_SAP_MAX), #endif #ifdef FEATURE_WLAN_SW_PTA REG_VARIABLE(CFG_SW_PTA_ENABLE_NAME, WLAN_PARAM_Integer, hdd_config_t, is_sw_pta_enabled, VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, CFG_SW_PTA_ENABLE_DEFAULT, CFG_SW_PTA_ENABLE_MIN, CFG_SW_PTA_ENABLE_MAX) #endif }; /* Loading Loading @@ -4295,6 +4304,19 @@ static void hdd_cfg_print_sae_sap(hdd_context_t *hdd_ctx) } #endif #ifdef FEATURE_WLAN_SW_PTA static void hdd_cfg_print_sw_pta(hdd_context_t* hdd_ctx) { hddLog(LOG2, "Name = [%s] value = [%u]", CFG_SW_PTA_ENABLE_NAME, hdd_ctx->cfg_ini->is_sw_pta_enabled); } #else static void hdd_cfg_print_sw_pta(hdd_context_t* hdd_ctx) { } #endif static void print_hdd_cfg(hdd_context_t *pHddCtx) { VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "*********Config values in HDD Adapter*******"); Loading Loading @@ -4757,6 +4779,7 @@ static void print_hdd_cfg(hdd_context_t *pHddCtx) pHddCtx->cfg_ini->enabledefaultSAP); hdd_cfg_print_sae(pHddCtx); hdd_cfg_print_sae_sap(pHddCtx); hdd_cfg_print_sw_pta(pHddCtx); } Loading CORE/HDD/src/wlan_hdd_cfg80211.c +27 −10 Original line number Diff line number Diff line Loading @@ -12314,6 +12314,7 @@ static int __wlan_hdd_cfg80211_start_ap(struct wiphy *wiphy, params->auth_type); } wlan_hdd_cfg80211_register_frames(pAdapter); EXIT(); return status; } Loading Loading @@ -12491,6 +12492,7 @@ int __wlan_hdd_cfg80211_change_iface( struct wiphy *wiphy, eMib_dot11DesiredBssType connectedBssType; VOS_STATUS status; long ret; bool iff_up = ndev->flags & IFF_UP; ENTER(); Loading Loading @@ -12763,13 +12765,21 @@ int __wlan_hdd_cfg80211_change_iface( struct wiphy *wiphy, return -EINVAL; } } if (iff_up) { hddLog(VOS_TRACE_LEVEL_DEBUG, "%s: SAP interface is already up", __func__); status = hdd_init_ap_mode(pAdapter, false); if(status != VOS_STATUS_SUCCESS) { hddLog(VOS_TRACE_LEVEL_FATAL, "%s: Error initializing the ap mode", __func__); "%s: Error initializing the ap mode", __func__); return -EINVAL; } } else { hddLog(VOS_TRACE_LEVEL_DEBUG, "%s: SAP interface is down", __func__); } hdd_set_conparam(1); status = hdd_sta_id_hash_attach(pAdapter); Loading Loading @@ -12855,9 +12865,16 @@ int __wlan_hdd_cfg80211_change_iface( struct wiphy *wiphy, #ifdef FEATURE_WLAN_TDLS mutex_unlock(&pHddCtx->tdls_lock); #endif if (iff_up) { hddLog(VOS_TRACE_LEVEL_DEBUG, "%s: STA interface is already up", __func__); status = hdd_init_station_mode( pAdapter ); if( VOS_STATUS_SUCCESS != status ) return -EOPNOTSUPP; } else { hddLog(VOS_TRACE_LEVEL_DEBUG, "%s: STA interface is down", __func__); } /* In case of JB, for P2P-GO, only change interface will be called, * This is the right place to enable back bmps_imps() */ Loading Loading
CORE/HDD/inc/wlan_hdd_cfg.h +8 −0 Original line number Diff line number Diff line Loading @@ -3317,6 +3317,11 @@ This feature requires the dependent cfg.ini "gRoamPrefer5GHz" set to 1 */ #define CFG_ENABLE_SAE_FOR_SAP_MIN (0) #define CFG_ENABLE_SAE_FOR_SAP_MAX (1) #define CFG_SW_PTA_ENABLE_NAME "sw_pta_enable" #define CFG_SW_PTA_ENABLE_DEFAULT (0) #define CFG_SW_PTA_ENABLE_MIN (0) #define CFG_SW_PTA_ENABLE_MAX (1) /*--------------------------------------------------------------------------- Type declarations -------------------------------------------------------------------------*/ Loading Loading @@ -3940,6 +3945,9 @@ typedef struct #ifdef FEATURE_WLAN_LFR uint8_t bssid_blacklist_timeout; #endif #ifdef FEATURE_WLAN_SW_PTA bool is_sw_pta_enabled; #endif } hdd_config_t; /*--------------------------------------------------------------------------- Loading
CORE/HDD/inc/wlan_hdd_main.h +18 −0 Original line number Diff line number Diff line Loading @@ -2314,6 +2314,24 @@ void hdd_disable_roaming(hdd_context_t *hdd_ctx); */ void hdd_restore_roaming(hdd_context_t *hdd_ctx); /** * hdd_chan_change_notify() - Function to notify about channel change * @adapter: pointer to adapter * @dev: Net device structure * @oper_chan: New operating channel * @phy_mode: phy mode * * This function is used to notify hostapd/supplicant about the channel change * * Return: Success on intimating userspace * */ VOS_STATUS hdd_chan_change_notify(hdd_adapter_t *adapter, struct net_device *dev, uint8_t oper_chan, eCsrPhyMode phy_mode); int wlan_hdd_check_and_stop_mon(hdd_adapter_t *sta_adapter, bool wait); /** Loading
CORE/HDD/src/wlan_hdd_assoc.c +19 −0 Original line number Diff line number Diff line Loading @@ -4414,6 +4414,7 @@ eHalStatus hdd_smeRoamCallback( void *pContext, tCsrRoamInfo *pRoamInfo, tANI_U3 case eCSR_ROAM_STA_CHANNEL_SWITCH: { hdd_adapter_t *pHostapdAdapter = NULL; eCsrPhyMode phy_mode = 0; pHddCtx = WLAN_HDD_GET_CTX(pAdapter); pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter); Loading @@ -4428,6 +4429,24 @@ eHalStatus hdd_smeRoamCallback( void *pContext, tCsrRoamInfo *pRoamInfo, tANI_U3 pHddStaCtx->conn_info.operationChannel = pRoamInfo->chan_info.chan_id; if(pRoamInfo->pProfile) { phy_mode = pRoamInfo->pProfile->phyMode; } status = hdd_chan_change_notify(pAdapter, pAdapter->dev, pRoamInfo->chan_info.chan_id, phy_mode); if(status != VOS_STATUS_SUCCESS) { hddLog(VOS_TRACE_LEVEL_ERROR, "%s: hdd_chan_change_notify failed", __func__); } hddLog(VOS_TRACE_LEVEL_ERROR, "%s: Channel switch event updated to upper layer to %d", __func__, pRoamInfo->chan_info.chan_id); pHostapdAdapter = hdd_get_adapter(pHddCtx, WLAN_HDD_SOFTAP); if (pHostapdAdapter && (test_bit(SOFTAP_BSS_STARTED, Loading
CORE/HDD/src/wlan_hdd_cfg.c +23 −0 Original line number Diff line number Diff line Loading @@ -4056,6 +4056,15 @@ REG_VARIABLE( CFG_EXTSCAN_ENABLE, WLAN_PARAM_Integer, CFG_ENABLE_SAE_FOR_SAP_MIN, CFG_ENABLE_SAE_FOR_SAP_MAX), #endif #ifdef FEATURE_WLAN_SW_PTA REG_VARIABLE(CFG_SW_PTA_ENABLE_NAME, WLAN_PARAM_Integer, hdd_config_t, is_sw_pta_enabled, VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, CFG_SW_PTA_ENABLE_DEFAULT, CFG_SW_PTA_ENABLE_MIN, CFG_SW_PTA_ENABLE_MAX) #endif }; /* Loading Loading @@ -4295,6 +4304,19 @@ static void hdd_cfg_print_sae_sap(hdd_context_t *hdd_ctx) } #endif #ifdef FEATURE_WLAN_SW_PTA static void hdd_cfg_print_sw_pta(hdd_context_t* hdd_ctx) { hddLog(LOG2, "Name = [%s] value = [%u]", CFG_SW_PTA_ENABLE_NAME, hdd_ctx->cfg_ini->is_sw_pta_enabled); } #else static void hdd_cfg_print_sw_pta(hdd_context_t* hdd_ctx) { } #endif static void print_hdd_cfg(hdd_context_t *pHddCtx) { VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "*********Config values in HDD Adapter*******"); Loading Loading @@ -4757,6 +4779,7 @@ static void print_hdd_cfg(hdd_context_t *pHddCtx) pHddCtx->cfg_ini->enabledefaultSAP); hdd_cfg_print_sae(pHddCtx); hdd_cfg_print_sae_sap(pHddCtx); hdd_cfg_print_sw_pta(pHddCtx); } Loading
CORE/HDD/src/wlan_hdd_cfg80211.c +27 −10 Original line number Diff line number Diff line Loading @@ -12314,6 +12314,7 @@ static int __wlan_hdd_cfg80211_start_ap(struct wiphy *wiphy, params->auth_type); } wlan_hdd_cfg80211_register_frames(pAdapter); EXIT(); return status; } Loading Loading @@ -12491,6 +12492,7 @@ int __wlan_hdd_cfg80211_change_iface( struct wiphy *wiphy, eMib_dot11DesiredBssType connectedBssType; VOS_STATUS status; long ret; bool iff_up = ndev->flags & IFF_UP; ENTER(); Loading Loading @@ -12763,13 +12765,21 @@ int __wlan_hdd_cfg80211_change_iface( struct wiphy *wiphy, return -EINVAL; } } if (iff_up) { hddLog(VOS_TRACE_LEVEL_DEBUG, "%s: SAP interface is already up", __func__); status = hdd_init_ap_mode(pAdapter, false); if(status != VOS_STATUS_SUCCESS) { hddLog(VOS_TRACE_LEVEL_FATAL, "%s: Error initializing the ap mode", __func__); "%s: Error initializing the ap mode", __func__); return -EINVAL; } } else { hddLog(VOS_TRACE_LEVEL_DEBUG, "%s: SAP interface is down", __func__); } hdd_set_conparam(1); status = hdd_sta_id_hash_attach(pAdapter); Loading Loading @@ -12855,9 +12865,16 @@ int __wlan_hdd_cfg80211_change_iface( struct wiphy *wiphy, #ifdef FEATURE_WLAN_TDLS mutex_unlock(&pHddCtx->tdls_lock); #endif if (iff_up) { hddLog(VOS_TRACE_LEVEL_DEBUG, "%s: STA interface is already up", __func__); status = hdd_init_station_mode( pAdapter ); if( VOS_STATUS_SUCCESS != status ) return -EOPNOTSUPP; } else { hddLog(VOS_TRACE_LEVEL_DEBUG, "%s: STA interface is down", __func__); } /* In case of JB, for P2P-GO, only change interface will be called, * This is the right place to enable back bmps_imps() */ Loading