qcacld-3.0: Handle eMLSR+NAN concurrency

eMLSR + NAN concurrency is not supported currently, so handle it
as mentioned below
1. eMLSR+NAN: If NAN is coming up when eMLSR is active, disable
   one ML link so that eMLSR gets disabled.
2. NAN+eMLSR: If eMLSR is coming up when NAN is already enabled,
   disable one link so that eMLSR doesn't get enabled.

Also, cleanup the APIs to carry a generic flag to indicate that
a concurrent connection is coming up instead of mode specific flag
as there is no dependency on modes to handle concurrency.

Change-Id: I625f8b18f9d7e991922d22af53f3e8743a3727bd
CRs-Fixed: 3443900
Esse commit está contido em:
Srinivas Dasari
2023-03-31 19:32:32 +05:30
commit de Madan Koyyalamudi
commit b01b3c5e00
9 arquivos alterados com 100 adições e 62 exclusões

Ver arquivo

@@ -542,9 +542,9 @@ qdf_freq_t wlan_get_conc_freq(void);
/**
* wlan_handle_emlsr_sta_concurrency() - Handle concurrency scenarios with
* EMLSR STA.
* @vdev: pointer to vdev
* @ap_coming_up: Check if the new connection request is SAP/P2P GO/NAN
* @sta_coming_up: Check if the new connection request is STA/P2P Client
* @psoc: pointer to psoc
* @conc_con_coming_up: Carries true if any concurrent connection(STA/SAP/NAN)
* is comng up
* @emlsr_sta_coming_up: Check if the new connection request is EMLSR STA
*
* The API handles concurrency scenarios with existing EMLSR connection when a
@@ -554,13 +554,13 @@ qdf_freq_t wlan_get_conc_freq(void);
* Return: none
*/
void
wlan_handle_emlsr_sta_concurrency(struct wlan_objmgr_vdev *vdev,
bool ap_coming_up, bool sta_coming_up,
wlan_handle_emlsr_sta_concurrency(struct wlan_objmgr_psoc *psoc,
bool conc_con_coming_up,
bool emlsr_sta_coming_up);
#else
static inline void
wlan_handle_emlsr_sta_concurrency(struct wlan_objmgr_vdev *vdev,
bool ap_coming_up, bool sta_coming_up,
wlan_handle_emlsr_sta_concurrency(struct wlan_objmgr_psoc *psoc,
bool conc_con_coming_up,
bool emlsr_sta_coming_up)
{
}

Ver arquivo

@@ -469,19 +469,11 @@ static QDF_STATUS ap_mlme_vdev_up_send(struct vdev_mlme_obj *vdev_mlme,
}
#ifdef WLAN_FEATURE_11BE_MLO
void wlan_handle_emlsr_sta_concurrency(struct wlan_objmgr_vdev *vdev,
bool ap_coming_up, bool sta_coming_up,
void wlan_handle_emlsr_sta_concurrency(struct wlan_objmgr_psoc *psoc,
bool conc_con_coming_up,
bool emlsr_sta_coming_up)
{
struct wlan_objmgr_psoc *psoc = wlan_vdev_get_psoc(vdev);
if (!psoc) {
mlme_legacy_debug("psoc Null");
return;
}
policy_mgr_handle_emlsr_sta_concurrency(psoc, vdev, ap_coming_up,
sta_coming_up,
policy_mgr_handle_emlsr_sta_concurrency(psoc, conc_con_coming_up,
emlsr_sta_coming_up);
}
#endif