qcacmn: skip a radio as primary-umac in MLO

Allow user configuration options to skip a radio as
primary-umac in multi-link operation.

Change-Id: Ic7c8dd5c1cf7855f4fb762daf9ace7cb82e02cac
CRs-Fixed: 3437922
This commit is contained in:
Rohan Dutta
2023-04-03 10:52:47 +05:30
committad av Madan Koyyalamudi
förälder ce762cce81
incheckning 4600a3b873
3 ändrade filer med 63 tillägg och 0 borttagningar

Visa fil

@@ -415,6 +415,7 @@ struct wlan_soc_timer {
* @tgt_if_handle: target interface handle
* @dp_handle: DP module handle
* @psoc_lock: psoc lock
* @skip_mlo_pumac: skip this psoc as MLO primary umac
*/
struct wlan_objmgr_psoc {
struct wlan_objmgr_psoc_regulatory soc_reg;
@@ -429,6 +430,7 @@ struct wlan_objmgr_psoc {
struct target_psoc_info *tgt_if_handle;
void *dp_handle;
qdf_spinlock_t psoc_lock;
bool skip_mlo_pumac;
};
/**
@@ -1959,6 +1961,41 @@ static inline void *wlan_psoc_get_dp_handle(struct wlan_objmgr_psoc *psoc)
return psoc->dp_handle;
}
/**
* wlan_psoc_set_pumac_skip - set mlo primary umac skip setting
* @psoc: psoc object pointer
* @val: indicate support for MLO PUMAC feature on psoc
*
* Return: void
*/
static inline void wlan_psoc_set_pumac_skip(
struct wlan_objmgr_psoc *psoc,
bool val)
{
if (qdf_unlikely(!psoc)) {
QDF_BUG(0);
return;
}
psoc->skip_mlo_pumac = val;
}
/**
* wlan_psoc_get_pumac_skip - get mlo primary umac skip setting
* @psoc: psoc object pointer
*
* Return: bool (primary umac support)
*/
static inline bool wlan_psoc_get_pumac_skip(struct wlan_objmgr_psoc *psoc)
{
if (qdf_unlikely(!psoc)) {
QDF_BUG(0);
return false;
}
return psoc->skip_mlo_pumac;
}
struct wlan_logically_del_peer {
qdf_list_node_t list;
struct wlan_objmgr_peer *peer;

Visa fil

@@ -744,6 +744,26 @@ static inline uint8_t wlan_vdev_get_psoc_id(struct wlan_objmgr_vdev *vdev)
return wlan_psoc_get_id(psoc);
}
/**
* wlan_vdev_skip_pumac() - get primary umac support
* @vdev: VDEV object
*
* API to get Primary umac support for MLO
*
* Return: get primary umac support (bool)
*/
static inline bool wlan_vdev_skip_pumac(struct wlan_objmgr_vdev *vdev)
{
struct wlan_objmgr_psoc *psoc;
psoc = wlan_vdev_get_psoc(vdev);
if (wlan_psoc_get_pumac_skip(psoc))
return true;
return false;
}
/**
* wlan_vdev_mlme_set_opmode() - set vdev opmode
* @vdev: VDEV object