qcacld-3.0: Advertize the STA+STA based on service caps
Currently driver advertizes the STA+STA feature in the get supported feature without checking the FW support. Advertize this feature only when FW supports it. CRs-Fixed: 3123324 Change-Id: Icd6a9d2ce93eeeca8962d2c8765930986431d71f
This commit is contained in:

committed by
Madan Koyyalamudi

parent
b6bb38f785
commit
cce8f3a127
@@ -213,6 +213,18 @@ policy_mgr_get_allow_mcc_go_diff_bi(struct wlan_objmgr_psoc *psoc,
|
|||||||
QDF_STATUS policy_mgr_get_dual_mac_feature(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS policy_mgr_get_dual_mac_feature(struct wlan_objmgr_psoc *psoc,
|
||||||
uint8_t *dual_mac_feature);
|
uint8_t *dual_mac_feature);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* policy_mgr_allow_multiple_sta_connections() - to find out if STA+STA feature
|
||||||
|
* is enabled.
|
||||||
|
* @psoc: pointer to psoc
|
||||||
|
*
|
||||||
|
* This API is used to find out whether STA+STA specific feature is enabled
|
||||||
|
* or not
|
||||||
|
*
|
||||||
|
* Return: true if supports else false.
|
||||||
|
*/
|
||||||
|
bool policy_mgr_allow_multiple_sta_connections(struct wlan_objmgr_psoc *psoc);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* policy_mgr_set_dual_mac_feature() - to set the dual mac feature value
|
* policy_mgr_set_dual_mac_feature() - to set the dual mac feature value
|
||||||
* @psoc: pointer to psoc
|
* @psoc: pointer to psoc
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -202,6 +203,19 @@ ucfg_policy_mgr_get_allow_mcc_go_diff_bi(struct wlan_objmgr_psoc *psoc,
|
|||||||
*/
|
*/
|
||||||
QDF_STATUS ucfg_policy_mgr_get_dual_mac_feature(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS ucfg_policy_mgr_get_dual_mac_feature(struct wlan_objmgr_psoc *psoc,
|
||||||
uint8_t *dual_mac_feature);
|
uint8_t *dual_mac_feature);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ucfg_policy_mgr_get_dual_sta_feature() - to find out if DUAL STA feature is
|
||||||
|
* enabled
|
||||||
|
* @psoc: pointer to psoc
|
||||||
|
*
|
||||||
|
* This API is used to find out whether dual sta specific feature is enabled
|
||||||
|
* or not.
|
||||||
|
*
|
||||||
|
* Return: true if feature is enabled, otherwise false.
|
||||||
|
*/
|
||||||
|
bool ucfg_policy_mgr_get_dual_sta_feature(struct wlan_objmgr_psoc *psoc);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ucfg_policy_mgr_get_force_1x1() - to find out if 1x1 connection is enforced
|
* ucfg_policy_mgr_get_force_1x1() - to find out if 1x1 connection is enforced
|
||||||
*
|
*
|
||||||
|
@@ -3539,14 +3539,7 @@ static inline bool policy_mgr_is_concurrency_allowed_4_port(
|
|||||||
{return false; }
|
{return false; }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
bool
|
||||||
* policy_mgr_allow_multiple_sta_connections() - check whether multiple STA
|
|
||||||
* concurrency is allowed and F/W supported
|
|
||||||
* @psoc: Pointer to soc
|
|
||||||
*
|
|
||||||
* Return: true if supports else false.
|
|
||||||
*/
|
|
||||||
static bool
|
|
||||||
policy_mgr_allow_multiple_sta_connections(struct wlan_objmgr_psoc *psoc)
|
policy_mgr_allow_multiple_sta_connections(struct wlan_objmgr_psoc *psoc)
|
||||||
{
|
{
|
||||||
struct wmi_unified *wmi_handle;
|
struct wmi_unified *wmi_handle;
|
||||||
|
@@ -201,6 +201,11 @@ QDF_STATUS ucfg_policy_mgr_get_dual_mac_feature(struct wlan_objmgr_psoc *psoc,
|
|||||||
return policy_mgr_get_dual_mac_feature(psoc, dual_mac_feature);
|
return policy_mgr_get_dual_mac_feature(psoc, dual_mac_feature);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ucfg_policy_mgr_get_dual_sta_feature(struct wlan_objmgr_psoc *psoc)
|
||||||
|
{
|
||||||
|
return policy_mgr_allow_multiple_sta_connections(psoc);
|
||||||
|
}
|
||||||
|
|
||||||
QDF_STATUS ucfg_policy_mgr_get_force_1x1(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS ucfg_policy_mgr_get_force_1x1(struct wlan_objmgr_psoc *psoc,
|
||||||
uint8_t *force_1x1)
|
uint8_t *force_1x1)
|
||||||
{
|
{
|
||||||
|
@@ -3928,7 +3928,9 @@ __wlan_hdd_cfg80211_get_supported_features(struct wiphy *wiphy,
|
|||||||
fset |= WIFI_FEATURE_PNO;
|
fset |= WIFI_FEATURE_PNO;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
fset |= WIFI_FEATURE_ADDITIONAL_STA;
|
if (ucfg_policy_mgr_get_dual_sta_feature(hdd_ctx->psoc))
|
||||||
|
fset |= WIFI_FEATURE_ADDITIONAL_STA;
|
||||||
|
|
||||||
#ifdef FEATURE_WLAN_TDLS
|
#ifdef FEATURE_WLAN_TDLS
|
||||||
cfg_tdls_get_support_enable(hdd_ctx->psoc, &bvalue);
|
cfg_tdls_get_support_enable(hdd_ctx->psoc, &bvalue);
|
||||||
if ((bvalue) && sme_is_feature_supported_by_fw(TDLS)) {
|
if ((bvalue) && sme_is_feature_supported_by_fw(TDLS)) {
|
||||||
|
Reference in New Issue
Block a user