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:

committet von
Madan Koyyalamudi

Ursprung
4301f71222
Commit
7b38805edc
@@ -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);
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren