qcacld-3.0: Add support for STA+NAN+NDI+NDI
Add support for four port concurrency for STA+NAN discovery + NDI + NDI. Change-Id: I7d6d3f482a61bef7f3d0a31eee3fdfe5e5e9d879 CRs-Fixed: 2633982
这个提交包含在:
@@ -806,6 +806,8 @@ struct wlan_nan_rx_ops {
|
||||
* @nan_sap_supported: Target supports NAN Discovery with SAP concurrency
|
||||
* @ndi_sap_supported: Target supports NAN Datapth with SAP concurrency
|
||||
* @nan_vdev_allowed: Allow separate vdev creation for NAN discovery
|
||||
* @sta_nan_ndi_ndi_allowed: 4 port concurrency of STA+NAN+NDI+NDI is supported
|
||||
* by Fw or not.
|
||||
*/
|
||||
struct nan_tgt_caps {
|
||||
uint32_t nan_disable_supported:1;
|
||||
@@ -814,6 +816,7 @@ struct nan_tgt_caps {
|
||||
uint32_t nan_sap_supported:1;
|
||||
uint32_t ndi_sap_supported:1;
|
||||
uint32_t nan_vdev_allowed:1;
|
||||
uint32_t sta_nan_ndi_ndi_allowed:1;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -369,6 +369,15 @@ bool ucfg_nan_is_sta_ndp_concurrency_allowed(struct wlan_objmgr_psoc *psoc,
|
||||
*/
|
||||
bool ucfg_nan_is_vdev_creation_allowed(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
/**
|
||||
* ucfg_nan_is_sta_nan_ndi_4_port_allowed- Get support for 4 port (STA +
|
||||
* NAN Disc + NDI + NDI)
|
||||
* @psoc: pointer to psoc object
|
||||
*
|
||||
* Return: True if 4 port concurrency allowed or not.
|
||||
*/
|
||||
bool ucfg_nan_is_sta_nan_ndi_4_port_allowed(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
/**
|
||||
* ucfg_nan_get_is_separate_nan_iface() - get is_separate_nan_iface value
|
||||
* @psoc: pointer to psoc object
|
||||
@@ -450,6 +459,12 @@ bool ucfg_nan_is_vdev_creation_allowed(struct wlan_objmgr_psoc *psoc)
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline
|
||||
bool ucfg_nan_is_sta_nan_ndi_4_port_allowed(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline
|
||||
bool ucfg_nan_get_is_separate_nan_iface(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
|
@@ -1072,7 +1072,13 @@ bool ucfg_nan_is_sta_ndp_concurrency_allowed(struct wlan_objmgr_psoc *psoc,
|
||||
if (wlan_vdev_get_id(vdev) == vdev_id_list[id])
|
||||
return true;
|
||||
|
||||
return false;
|
||||
/* If the flow reaches here then it is 4th NDI with STA */
|
||||
if (!ucfg_nan_is_sta_nan_ndi_4_port_allowed(psoc))
|
||||
return false;
|
||||
|
||||
/* The final freq would be provided by FW, it is not known now */
|
||||
return policy_mgr_allow_concurrency(psoc, PM_NDI_MODE, 0,
|
||||
HW_MODE_20_MHZ);
|
||||
}
|
||||
|
||||
bool ucfg_nan_is_vdev_creation_allowed(struct wlan_objmgr_psoc *psoc)
|
||||
@@ -1088,6 +1094,20 @@ bool ucfg_nan_is_vdev_creation_allowed(struct wlan_objmgr_psoc *psoc)
|
||||
return psoc_nan_obj->nan_caps.nan_vdev_allowed;
|
||||
}
|
||||
|
||||
bool
|
||||
ucfg_nan_is_sta_nan_ndi_4_port_allowed(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
struct nan_psoc_priv_obj *psoc_nan_obj;
|
||||
|
||||
psoc_nan_obj = nan_get_psoc_priv_obj(psoc);
|
||||
if (!psoc_nan_obj) {
|
||||
nan_err("psoc_nan_obj is null");
|
||||
return false;
|
||||
}
|
||||
|
||||
return psoc_nan_obj->nan_caps.sta_nan_ndi_ndi_allowed;
|
||||
}
|
||||
|
||||
bool ucfg_nan_get_is_separate_nan_iface(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
struct nan_psoc_priv_obj *nan_obj = nan_get_psoc_priv_obj(psoc);
|
||||
|
在新工单中引用
屏蔽一个用户