qcacld-3.0: Send async event to userspace for NAN concurrency
As part of Spatial Reuse, host has to send SR Suspend and resume events based on concurrency which is not sent in case of NAN concurrency. Fix is to send SR Suspend in case NAN comes up and any STA that supports SR is already present because SR is not supported in case of NAN concurrency. Similarly during NAN disable check if any other vdev apart from NAN is sharing mac with STA that supports SR and SR support on same mac is disabled then don't send SR resume event as there is already a concurrent vdev that will take care of SR Suspend event otherwise send SR Resume event. Change-Id: I56a9b455dd0166bc3997f8306992e46da759e992 CRs-Fixed: 3339713
Šī revīzija ir iekļauta:

revīziju iesūtīja
Madan Koyyalamudi

vecāks
9406e4252e
revīzija
ac14a3912b
@@ -796,6 +796,8 @@ struct nan_datapath_host_event {
|
||||
* @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
|
||||
* @nan_sr_concurrency_update: Callback to handle nan SR(Spatial Reuse)
|
||||
* concurrency
|
||||
*/
|
||||
struct nan_callbacks {
|
||||
/* callback to os_if layer from umac */
|
||||
@@ -822,6 +824,9 @@ struct nan_callbacks {
|
||||
struct nan_datapath_channel_info
|
||||
*chan_info);
|
||||
void (*nan_concurrency_update)(void);
|
||||
#ifdef WLAN_FEATURE_SR
|
||||
void (*nan_sr_concurrency_update)(struct nan_event_params *nan_evt);
|
||||
#endif
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -594,6 +594,21 @@ static void ucfg_nan_request_process_cb(void *cookie)
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef WLAN_FEATURE_SR
|
||||
static void
|
||||
nan_register_sr_concurrency_callback(struct nan_psoc_priv_obj *psoc_obj,
|
||||
struct nan_callbacks *cb_obj)
|
||||
{
|
||||
psoc_obj->cb_obj.nan_sr_concurrency_update =
|
||||
cb_obj->nan_sr_concurrency_update;
|
||||
}
|
||||
#else
|
||||
static inline void
|
||||
nan_register_sr_concurrency_callback(struct nan_psoc_priv_obj *psoc_obj,
|
||||
struct nan_callbacks *cb_obj)
|
||||
{}
|
||||
#endif
|
||||
|
||||
int ucfg_nan_register_hdd_callbacks(struct wlan_objmgr_psoc *psoc,
|
||||
struct nan_callbacks *cb_obj)
|
||||
{
|
||||
@@ -624,7 +639,7 @@ int ucfg_nan_register_hdd_callbacks(struct wlan_objmgr_psoc *psoc,
|
||||
ucfg_nan_request_process_cb;
|
||||
psoc_obj->cb_obj.nan_concurrency_update =
|
||||
cb_obj->nan_concurrency_update;
|
||||
|
||||
nan_register_sr_concurrency_callback(psoc_obj, cb_obj);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Atsaukties uz šo jaunā problēmā
Block a user