qcacld-3.0: Handle SAP concurrency in CSA and NAN/NDI case

TWT is supported in STA/SAP vdevs and it's allowed only in
DBS/Standalone case and not in SCC/MCC. Disable SAP TWT if
1. Concurrency occurs in SAP + NAN/NDI vdev
2. SCC/MCC occurs after CSA

Change-Id: Id1400bd5555d2f48590d7d3ad7c70162d1dd92fb
CRs-Fixed: 2942959
Dieser Commit ist enthalten in:
Jyoti Kumari
2021-05-10 13:21:43 +05:30
committet von Madan Koyyalamudi
Ursprung 4301f71222
Commit 7b38805edc
9 geänderte Dateien mit 51 neuen und 6 gelöschten Zeilen

Datei anzeigen

@@ -787,6 +787,7 @@ struct nan_datapath_host_event {
* @ndp_delete_peers: LIM callback for deleting NDP peer
* @delete_peers_by_addr: LIM callback for deleting peer by MAC address
* @update_ndi_conn: WMA callback to update NDI's connection info
* @nan_concurrency_update: Callback to handle nan concurrency
*/
struct nan_callbacks {
/* callback to os_if layer from umac */
@@ -811,6 +812,7 @@ struct nan_callbacks {
QDF_STATUS (*update_ndi_conn)(uint8_t vdev_id,
struct nan_datapath_channel_info
*chan_info);
void (*nan_concurrency_update)(void);
};
/**

Datei anzeigen

@@ -827,6 +827,7 @@ static QDF_STATUS nan_handle_enable_rsp(struct nan_event_params *nan_event)
QDF_STATUS status;
void (*call_back)(void *cookie);
uint8_t vdev_id;
void (*nan_conc_callback)(void);
psoc = nan_event->psoc;
psoc_nan_obj = nan_get_psoc_priv_obj(psoc);
@@ -874,6 +875,9 @@ fail:
policy_mgr_check_n_start_opportunistic_timer(psoc);
done:
nan_conc_callback = psoc_nan_obj->cb_obj.nan_concurrency_update;
if (nan_conc_callback)
nan_conc_callback();
call_back = psoc_nan_obj->cb_obj.ucfg_nan_request_process_cb;
if (call_back)
call_back(psoc_nan_obj->nan_disc_request_ctx);
@@ -886,6 +890,7 @@ QDF_STATUS nan_disable_cleanup(struct wlan_objmgr_psoc *psoc)
struct nan_psoc_priv_obj *psoc_nan_obj;
QDF_STATUS status;
uint8_t vdev_id;
void (*nan_conc_callback)(void);
if (!psoc) {
nan_err("psoc is NULL");
@@ -917,6 +922,9 @@ QDF_STATUS nan_disable_cleanup(struct wlan_objmgr_psoc *psoc)
nan_err("Cannot set NAN state to disabled!");
return QDF_STATUS_E_FAILURE;
}
nan_conc_callback = psoc_nan_obj->cb_obj.nan_concurrency_update;
if (nan_conc_callback)
nan_conc_callback();
return status;
}

Datei anzeigen

@@ -532,6 +532,8 @@ int ucfg_nan_register_hdd_callbacks(struct wlan_objmgr_psoc *psoc,
cb_obj->os_if_nan_event_handler;
psoc_obj->cb_obj.ucfg_nan_request_process_cb =
ucfg_nan_request_process_cb;
psoc_obj->cb_obj.nan_concurrency_update =
cb_obj->nan_concurrency_update;
return 0;
}