qcacld-3.0: Get the firmware capability NAN_VDEV_SUPPORT

Firmware advertises service capability bit NAN_VDEV_SUPPORT for
separate NAN vdev creation. This capability can be used to create
separate interface for NAN discovery and process corresponding
commands from userspace.

Change-Id: I45573c94ee2d966afc1e207c9eefc146ff43320f
CRs-Fixed: 2592019
This commit is contained in:
Srinivas Dasari
2019-12-22 20:31:43 +05:30
committed by nshrivas
부모 95c0e0d020
커밋 4c50119c27
4개의 변경된 파일32개의 추가작업 그리고 0개의 파일을 삭제

파일 보기

@@ -791,6 +791,7 @@ struct wlan_nan_rx_ops {
* @ndi_dbs_supported: Target supports NAN Datapath with DBS
* @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
*/
struct nan_tgt_caps {
uint32_t nan_disable_supported:1;
@@ -798,6 +799,7 @@ struct nan_tgt_caps {
uint32_t ndi_dbs_supported:1;
uint32_t nan_sap_supported:1;
uint32_t ndi_sap_supported:1;
uint32_t nan_vdev_allowed:1;
};
#endif

파일 보기

@@ -360,6 +360,14 @@ bool ucfg_nan_is_enable_disable_in_progress(struct wlan_objmgr_psoc *psoc);
*/
bool ucfg_nan_is_sta_ndp_concurrency_allowed(struct wlan_objmgr_psoc *psoc,
struct wlan_objmgr_vdev *vdev);
/**
* ucfg_nan_is_vdev_creation_allowed()- Get support for NAN vdev creation
* @psoc: pointer to psoc object
*
* Return: True if NAN vdev creation is allowed else false
*/
bool ucfg_nan_is_vdev_creation_allowed(struct wlan_objmgr_psoc *psoc);
#else /* WLAN_FEATURE_NAN */
static inline
@@ -411,5 +419,11 @@ bool ucfg_nan_is_sta_ndp_concurrency_allowed(struct wlan_objmgr_psoc *psoc,
{
return false;
}
static inline
bool ucfg_nan_is_vdev_creation_allowed(struct wlan_objmgr_psoc *psoc)
{
return false;
}
#endif /* WLAN_FEATURE_NAN */
#endif /* _NAN_UCFG_API_H_ */

파일 보기

@@ -1032,3 +1032,16 @@ bool ucfg_nan_is_sta_ndp_concurrency_allowed(struct wlan_objmgr_psoc *psoc,
return false;
}
bool ucfg_nan_is_vdev_creation_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.nan_vdev_allowed;
}