qcacld-3.0: Add policy mgr changes to support NDI concurrencies

If Firmware supports NDI DBS mode, driver can support NDI
concurrency along with NAN and STA type connecitons. Use
Policy Manager API's to add support for these concurrencies.

Add policy mgr related changes to support NDI concurrencies.

Change-Id: If272be34606c0897d0b145c602b4bc2ba4462cb0
CRs-Fixed: 2384549
This commit is contained in:
Nachiket Kukade
2019-02-19 17:57:19 +05:30
committed by nshrivas
szülő 98885bc1b8
commit 413c5fa36e
10 fájl változott, egészen pontosan 190 új sor hozzáadva és 10 régi sor törölve

Fájl megtekintése

@@ -431,16 +431,18 @@ ndi_remove_and_update_primary_connection(struct wlan_objmgr_psoc *psoc,
}
if (!peer && psoc_nan_obj->nan_caps.ndi_dbs_supported) {
/* TODO: Remove connection from policy manager tables */
policy_mgr_decr_session_set_pcl(psoc, QDF_NDI_MODE,
wlan_vdev_get_id(vdev));
return QDF_STATUS_SUCCESS;
}
if (peer_nan_obj && psoc_nan_obj->nan_caps.ndi_dbs_supported) {
psoc_nan_obj->cb_obj.update_ndi_conn(wlan_vdev_get_id(vdev),
&peer_nan_obj->home_chan_info);
/* TODO: Update policy mgr with connection info */
policy_mgr_update_connection_info(psoc, wlan_vdev_get_id(vdev));
qdf_mem_copy(vdev_nan_obj->primary_peer_mac.bytes,
wlan_peer_get_macaddr(peer), QDF_MAC_ADDR_SIZE);
policy_mgr_check_n_start_opportunistic_timer(psoc);
}
wlan_objmgr_peer_release_ref(peer, WLAN_NAN_ID);
@@ -506,10 +508,11 @@ ndi_update_ndp_session(struct wlan_objmgr_vdev *vdev,
static QDF_STATUS nan_handle_confirm(
struct nan_datapath_confirm_event *confirm)
{
uint8_t vdev_id;
uint8_t vdev_id, channel;
struct wlan_objmgr_psoc *psoc;
struct nan_psoc_priv_obj *psoc_nan_obj;
struct nan_vdev_priv_obj *vdev_nan_obj;
QDF_STATUS status;
vdev_id = wlan_vdev_get_id(confirm->vdev);
psoc = wlan_vdev_get_psoc(confirm->vdev);
@@ -564,11 +567,33 @@ static QDF_STATUS nan_handle_confirm(
psoc_nan_obj->cb_obj.update_ndi_conn(vdev_id, &confirm->ch[0]);
if (psoc_nan_obj->nan_caps.ndi_dbs_supported) {
/*
* TODO: Update connection in Policy Manager if NDI
* concurrencies are supported and this is the first
* active NDP for the NDI.
*/
channel = wlan_freq_to_chan(confirm->ch[0].freq);
status = policy_mgr_reset_connection_update(psoc);
if (!QDF_IS_STATUS_SUCCESS(status)) {
nan_err("Policy mgr reset connection failed-%d",
status);
return status;
}
status = policy_mgr_current_connections_update(psoc,
vdev_id, channel,
POLICY_MGR_UPDATE_REASON_NDP_UPDATE);
if (QDF_STATUS_E_FAILURE == status) {
nan_err("connections update failed!!");
return status;
}
if (QDF_STATUS_SUCCESS == status) {
status = policy_mgr_wait_for_connection_update(
psoc);
if (!QDF_IS_STATUS_SUCCESS(status)) {
nan_err("qdf wait for event failed!!");
return status;
}
}
policy_mgr_incr_active_session(psoc, QDF_NDI_MODE,
vdev_id);
}
}