qcacld-3.0: Add concurrency check with SR
Add check for concurrency with SR, if SR with concurrency is not enabled then disable the SR on existing VDEV as soon as new VDEV is up. When this new VDEV is disconnected, then enable back the SR on the previous VDEV. Change-Id: Id6aee592b889bb7006efb44420e6d272212e13ba CRs-Fixed: 3306181
This commit is contained in:

committed by
Madan Koyyalamudi

parent
6cdc4ce277
commit
45f42c90a8
@@ -50,6 +50,28 @@ void ucfg_spatial_reuse_get_sr_config(struct wlan_objmgr_vdev *vdev,
|
||||
void ucfg_spatial_reuse_set_sr_config(struct wlan_objmgr_vdev *vdev,
|
||||
uint8_t sr_ctrl,
|
||||
uint8_t non_srg_max_pd_offset);
|
||||
|
||||
/**
|
||||
* ucfg_spatial_reuse_is_sr_disabled_due_conc() - Spatial reuse get concurrency
|
||||
* status
|
||||
*
|
||||
* @vdev: object manager vdev
|
||||
*
|
||||
* Return: True when SR is disabled due to concurrency or else False
|
||||
*/
|
||||
bool ucfg_spatial_reuse_is_sr_disabled_due_conc(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* ucfg_spatial_reuse_set_sr_conc_stat() - Spatial reuse disable config set
|
||||
*
|
||||
* @vdev: object manager vdev
|
||||
* @sr_conc_disabled: spatial reuse disabled due to concurrency
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
void ucfg_spatial_reuse_set_sr_conc_stat(struct wlan_objmgr_vdev *vdev,
|
||||
bool sr_conc_disabled);
|
||||
|
||||
/**
|
||||
* ucfg_spatial_reuse_send_sr_config() - Send spatial reuse config to fw
|
||||
*
|
||||
|
@@ -39,6 +39,17 @@ void ucfg_spatial_reuse_set_sr_config(struct wlan_objmgr_vdev *vdev,
|
||||
wlan_vdev_mlme_set_pd_offset(vdev, non_srg_max_pd_offset);
|
||||
}
|
||||
|
||||
bool ucfg_spatial_reuse_is_sr_disabled_due_conc(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
return wlan_vdev_mlme_is_sr_disable_due_conc(vdev);
|
||||
}
|
||||
|
||||
void ucfg_spatial_reuse_set_sr_conc_stat(struct wlan_objmgr_vdev *vdev,
|
||||
bool sr_conc_disabled)
|
||||
{
|
||||
wlan_vdev_mlme_set_sr_disable_due_conc(vdev, sr_conc_disabled);
|
||||
}
|
||||
|
||||
void ucfg_spatial_reuse_send_sr_config(struct wlan_objmgr_vdev *vdev,
|
||||
bool enable)
|
||||
{
|
||||
@@ -49,6 +60,9 @@ void ucfg_spatial_reuse_send_sr_config(struct wlan_objmgr_vdev *vdev,
|
||||
/* SR feature itself is disabled by user */
|
||||
if (!wlan_vdev_mlme_get_he_spr_enabled(vdev))
|
||||
return;
|
||||
/* SR is disabled due to conccurrency */
|
||||
if (ucfg_spatial_reuse_is_sr_disabled_due_conc(vdev))
|
||||
return;
|
||||
|
||||
if (enable) {
|
||||
sr_ctrl = wlan_vdev_mlme_get_sr_ctrl(vdev);
|
||||
|
Reference in New Issue
Block a user