qcacld-3.0: Send additional interface combinations to fw
As part of set feature set command, update STA_P2P, STA_SAP, STA_NAN, STA_TDLS, STA_SAP_P2P, STA_SAP_NAN, STA_P2P_NAN, STA_P2P_TDLS, STA_SAP_TDLS, STA_NAN_TDLS, STA_SAP_P2P_TDLS, STA_SAP_NAN_TDLS, STA_P2P_P2P_TDLS, STA_P2P_NAN_TDLS iface combinations to fw. Also use WLAN_FEATURE_NO_P2P_CONCURRENCY sta dual p2p support combination. Change-Id: I315c219f79995dedb0c2856d326838351d8a3d5e CRs-Fixed: 3674696
This commit is contained in:

committed by
Ravindra Konda

parent
c826d492e5
commit
a901bcc17e
@@ -2960,6 +2960,42 @@ struct wlan_change_bi {
|
||||
};
|
||||
|
||||
#ifdef FEATURE_SET
|
||||
/**
|
||||
* enum wlan_mlme_iface_combinations - Iface combinations
|
||||
* @MLME_IFACE_STA_P2P_SUPPORT: STA + P2P concurrency bit
|
||||
* @MLME_IFACE_STA_SAP_SUPPORT: STA + SAP concurrency bit
|
||||
* @MLME_IFACE_STA_NAN_SUPPORT: STA + NAN concurrency bit
|
||||
* @MLME_IFACE_STA_TDLS_SUPPORT: STA + TDLS concurrency bit
|
||||
* @MLME_IFACE_STA_DUAL_P2P_SUPPORT: STA + P2P + P2P concurrency bit
|
||||
* @MLME_IFACE_STA_SAP_P2P_SUPPORT: STA + SAP + P2P concurrency bit
|
||||
* @MLME_IFACE_STA_SAP_NAN_SUPPORT: STA + SAP + NAN concurrency bit
|
||||
* @MLME_IFACE_STA_P2P_NAN_SUPPORT: STA + P2P + NAN concurrency bit
|
||||
* @MLME_IFACE_STA_P2P_TDLS_SUPPORT: STA + P2P + TDLS concurrency bit
|
||||
* @MLME_IFACE_STA_SAP_TDLS_SUPPORT: STA + SAP + TDLS concurrency bit
|
||||
* @MLME_IFACE_STA_NAN_TDLS_SUPPORT: STA + NAN + TDLS concurrency bit
|
||||
* @MLME_IFACE_STA_SAP_P2P_TDLS_SUPPORT: STA + SAP + P2P + TDLS concurrency bit
|
||||
* @MLME_IFACE_STA_SAP_NAN_TDLS_SUPPORT: STA + SAP + NAN + TDLS concurrency bit
|
||||
* @MLME_IFACE_STA_P2P_P2P_TDLS_SUPPORT: STA + P2P + P2P + TDLS concurrency bit
|
||||
* @MLME_IFACE_STA_P2P_NAN_TDLS_SUPPORT: STA + P2P + NAN + TDLS concurrency bit
|
||||
*/
|
||||
enum wlan_mlme_iface_combinations {
|
||||
MLME_IFACE_STA_P2P_SUPPORT = 0x1,
|
||||
MLME_IFACE_STA_SAP_SUPPORT = 0x2,
|
||||
MLME_IFACE_STA_NAN_SUPPORT = 0x4,
|
||||
MLME_IFACE_STA_TDLS_SUPPORT = 0x8,
|
||||
MLME_IFACE_STA_DUAL_P2P_SUPPORT = 0x10,
|
||||
MLME_IFACE_STA_SAP_P2P_SUPPORT = 0x20,
|
||||
MLME_IFACE_STA_SAP_NAN_SUPPORT = 0x40,
|
||||
MLME_IFACE_STA_P2P_NAN_SUPPORT = 0x80,
|
||||
MLME_IFACE_STA_P2P_TDLS_SUPPORT = 0x100,
|
||||
MLME_IFACE_STA_SAP_TDLS_SUPPORT = 0x200,
|
||||
MLME_IFACE_STA_NAN_TDLS_SUPPORT = 0x400,
|
||||
MLME_IFACE_STA_SAP_P2P_TDLS_SUPPORT = 0x800,
|
||||
MLME_IFACE_STA_SAP_NAN_TDLS_SUPPORT = 0x1000,
|
||||
MLME_IFACE_STA_P2P_P2P_TDLS_SUPPORT = 0x2000,
|
||||
MLME_IFACE_STA_P2P_NAN_TDLS_SUPPORT = 0x4000,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wlan_mlme_features - Mlme feature set structure
|
||||
* @enable_wifi_optimizer: indicates wifi optimizer is enabled or disabled
|
||||
@@ -2979,8 +3015,8 @@ struct wlan_change_bi {
|
||||
* @roaming_ctrl_get_cu: Roaming ctrl get cu enabled or disabled
|
||||
* @vendor_req_1_version: Vendor requirement version 1
|
||||
* @vendor_req_2_version: Vendor requirement version 2
|
||||
* @sta_dual_p2p_support: STA + dual p2p support enabled or not
|
||||
* @enable2x2: Enable 2x2
|
||||
* @iface_combinations: iface combination bitmask
|
||||
*/
|
||||
struct wlan_mlme_features {
|
||||
bool enable_wifi_optimizer;
|
||||
@@ -2999,8 +3035,8 @@ struct wlan_mlme_features {
|
||||
bool roaming_ctrl_get_cu;
|
||||
WMI_HOST_VENDOR1_REQ1_VERSION vendor_req_1_version;
|
||||
WMI_HOST_VENDOR1_REQ2_VERSION vendor_req_2_version;
|
||||
bool sta_dual_p2p_support;
|
||||
bool enable2x2;
|
||||
uint32_t iface_combinations;
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@@ -7303,7 +7303,8 @@ wlan_mlme_get_adaptive11r_enabled(struct wlan_objmgr_psoc *psoc, bool *val)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef WLAN_FEATURE_P2P_P2P_STA
|
||||
#if defined(WLAN_FEATURE_P2P_P2P_STA) && \
|
||||
!defined(WLAN_FEATURE_NO_P2P_CONCURRENCY)
|
||||
static bool
|
||||
wlan_mlme_get_p2p_p2p_host_conc_support(void)
|
||||
{
|
||||
@@ -7317,6 +7318,167 @@ wlan_mlme_get_p2p_p2p_host_conc_support(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef WLAN_FEATURE_NO_STA_SAP_CONCURRENCY
|
||||
static bool
|
||||
wlan_mlme_get_sta_sap_host_conc_support(void)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
#else
|
||||
static bool
|
||||
wlan_mlme_get_sta_sap_host_conc_support(void)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef WLAN_FEATURE_NO_STA_NAN_CONCURRENCY
|
||||
static bool
|
||||
wlan_mlme_get_sta_nan_host_conc_support(void)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
#else
|
||||
static bool
|
||||
wlan_mlme_get_sta_nan_host_conc_support(void)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_WLAN_TDLS
|
||||
static bool
|
||||
wlan_mlme_get_sta_tdls_host_conc_support(void)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
#else
|
||||
static bool
|
||||
wlan_mlme_get_sta_tdls_host_conc_support(void)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined(WLAN_FEATURE_NO_STA_SAP_CONCURRENCY) && \
|
||||
(!defined(WLAN_FEATURE_NO_P2P_CONCURRENCY) || \
|
||||
defined(WLAN_FEATURE_STA_SAP_P2P_CONCURRENCY))
|
||||
static bool
|
||||
wlan_mlme_get_sta_sap_p2p_host_conc_support(void)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
#else
|
||||
static bool
|
||||
wlan_mlme_get_sta_sap_p2p_host_conc_support(void)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_WLAN_TDLS)
|
||||
static bool
|
||||
wlan_mlme_get_sta_p2p_tdls_host_conc_support(void)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
#else
|
||||
static bool
|
||||
wlan_mlme_get_sta_p2p_tdls_host_conc_support(void)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_WLAN_TDLS) && !defined(WLAN_FEATURE_NO_STA_SAP_CONCURRENCY)
|
||||
static bool
|
||||
wlan_mlme_get_sta_sap_tdls_host_conc_support(void)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
#else
|
||||
static bool
|
||||
wlan_mlme_get_sta_sap_tdls_host_conc_support(void)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_WLAN_TDLS) && \
|
||||
!defined(WLAN_FEATURE_NO_STA_SAP_CONCURRENCY) && \
|
||||
(!defined(WLAN_FEATURE_NO_P2P_CONCURRENCY) || \
|
||||
defined(WLAN_FEATURE_STA_SAP_P2P_CONCURRENCY))
|
||||
|
||||
static bool
|
||||
wlan_mlme_get_sta_sap_p2p_tdls_host_conc_support(void)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
#else
|
||||
static bool
|
||||
wlan_mlme_get_sta_sap_p2p_tdls_host_conc_support(void)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_WLAN_TDLS) && defined(WLAN_FEATURE_P2P_P2P_STA) && \
|
||||
!defined(WLAN_FEATURE_NO_P2P_CONCURRENCY)
|
||||
static bool
|
||||
wlan_mlme_get_sta_p2p_p2p_tdls_host_conc_support(void)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
#else
|
||||
static bool
|
||||
wlan_mlme_get_sta_p2p_p2p_tdls_host_conc_support(void)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* wlan_mlme_set_iface_combinations() - Set interface combinations
|
||||
* @mlme_feature_set: Pointer to wlan_mlme_features
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
static void
|
||||
wlan_mlme_set_iface_combinations(struct wlan_mlme_features *mlme_feature_set)
|
||||
{
|
||||
mlme_feature_set->iface_combinations = 0;
|
||||
mlme_feature_set->iface_combinations |= MLME_IFACE_STA_P2P_SUPPORT;
|
||||
if (wlan_mlme_get_sta_sap_host_conc_support())
|
||||
mlme_feature_set->iface_combinations |=
|
||||
MLME_IFACE_STA_SAP_SUPPORT;
|
||||
if (wlan_mlme_get_sta_nan_host_conc_support())
|
||||
mlme_feature_set->iface_combinations |=
|
||||
MLME_IFACE_STA_NAN_SUPPORT;
|
||||
if (wlan_mlme_get_sta_tdls_host_conc_support())
|
||||
mlme_feature_set->iface_combinations |=
|
||||
MLME_IFACE_STA_TDLS_SUPPORT;
|
||||
if (wlan_mlme_get_p2p_p2p_host_conc_support())
|
||||
mlme_feature_set->iface_combinations |=
|
||||
MLME_IFACE_STA_DUAL_P2P_SUPPORT;
|
||||
if (wlan_mlme_get_sta_sap_p2p_host_conc_support())
|
||||
mlme_feature_set->iface_combinations |=
|
||||
MLME_IFACE_STA_SAP_P2P_SUPPORT;
|
||||
if (wlan_mlme_get_sta_p2p_tdls_host_conc_support())
|
||||
mlme_feature_set->iface_combinations |=
|
||||
MLME_IFACE_STA_P2P_TDLS_SUPPORT;
|
||||
if (wlan_mlme_get_sta_sap_tdls_host_conc_support())
|
||||
mlme_feature_set->iface_combinations |=
|
||||
MLME_IFACE_STA_SAP_TDLS_SUPPORT;
|
||||
if (wlan_mlme_get_sta_sap_p2p_tdls_host_conc_support())
|
||||
mlme_feature_set->iface_combinations |=
|
||||
MLME_IFACE_STA_SAP_P2P_TDLS_SUPPORT;
|
||||
if (wlan_mlme_get_sta_p2p_p2p_tdls_host_conc_support())
|
||||
mlme_feature_set->iface_combinations |=
|
||||
MLME_IFACE_STA_P2P_P2P_TDLS_SUPPORT;
|
||||
mlme_debug("iface combinations = %x",
|
||||
mlme_feature_set->iface_combinations);
|
||||
}
|
||||
|
||||
void wlan_mlme_get_feature_info(struct wlan_objmgr_psoc *psoc,
|
||||
struct wlan_mlme_features *mlme_feature_set)
|
||||
{
|
||||
@@ -7363,8 +7525,7 @@ void wlan_mlme_get_feature_info(struct wlan_objmgr_psoc *psoc,
|
||||
|
||||
mlme_feature_set->vendor_req_2_version =
|
||||
WMI_HOST_VENDOR1_REQ2_VERSION_3_50;
|
||||
mlme_feature_set->sta_dual_p2p_support =
|
||||
wlan_mlme_get_p2p_p2p_host_conc_support();
|
||||
wlan_mlme_set_iface_combinations(mlme_feature_set);
|
||||
wlan_mlme_get_vht_enable2x2(psoc, &mlme_feature_set->enable2x2);
|
||||
}
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user