qcacmn: Configure STA with default non-SRG SR parameters

Currently, STA cannot perform SR when SAP does not include SR
IE in Beacon/Probe response/Assoc response.

This change is done to configure default non-SRG OBSS PD
parameters in FW in this case.

Change-Id: I8effbc31631267bd96a269e0bffff74139dafaf1
CRs-Fixed: 3607399
此提交包含在:
Gangadhar Kavalastramath
2023-09-05 16:39:46 +05:30
提交者 Rahul Choudhary
父節點 4d62f37743
當前提交 48f4d53901
共有 3 個檔案被更改,包括 44 行新增43 行删除

查看文件

@@ -189,7 +189,6 @@ spatial_reuse_set_sr_enable_disable(struct wlan_objmgr_vdev *vdev,
int32_t non_srg_pd_threshold)
{
uint32_t val = 0;
uint8_t sr_ctrl;
struct wlan_objmgr_psoc *psoc;
QDF_STATUS status = QDF_STATUS_SUCCESS;
@@ -197,43 +196,34 @@ spatial_reuse_set_sr_enable_disable(struct wlan_objmgr_vdev *vdev,
if (!psoc)
return QDF_STATUS_E_NOENT;
sr_ctrl = wlan_vdev_mlme_get_sr_ctrl(vdev);
if ((!(sr_ctrl & NON_SRG_PD_SR_DISALLOWED) &&
(sr_ctrl & NON_SRG_OFFSET_PRESENT)) ||
(sr_ctrl & SRG_INFO_PRESENT)) {
if (is_sr_enable) {
wlan_mlme_update_sr_data(vdev, &val, srg_pd_threshold,
non_srg_pd_threshold,
is_sr_enable);
wlan_vdev_obj_lock(vdev);
wlan_vdev_mlme_set_he_spr_enabled(vdev, true);
wlan_vdev_obj_unlock(vdev);
} else {
wlan_vdev_obj_lock(vdev);
wlan_vdev_mlme_set_he_spr_enabled(vdev, false);
wlan_vdev_obj_unlock(vdev);
}
if (is_sr_enable) {
wlan_mlme_update_sr_data(vdev, &val, srg_pd_threshold,
non_srg_pd_threshold,
is_sr_enable);
wlan_vdev_obj_lock(vdev);
wlan_vdev_mlme_set_he_spr_enabled(vdev, true);
wlan_vdev_obj_unlock(vdev);
} else {
wlan_vdev_obj_lock(vdev);
wlan_vdev_mlme_set_he_spr_enabled(vdev, false);
wlan_vdev_obj_unlock(vdev);
}
mlme_debug("srp param val: %u, enable: %d",
val, is_sr_enable);
if (is_sr_enable) {
status = spatial_reuse_send_bss_color_bit_map(vdev,
pdev);
if (status != QDF_STATUS_SUCCESS)
return status;
status = spatial_reuse_send_partial_bssid_bit_map(vdev,
pdev);
if (status != QDF_STATUS_SUCCESS)
return status;
}
status =
spatial_reuse_send_pd_threshold(pdev, vdev->vdev_objmgr.vdev_id,
val);
mlme_debug("srp param val: %u, enable: %d",
val, is_sr_enable);
if (is_sr_enable) {
status = spatial_reuse_send_bss_color_bit_map(vdev, pdev);
if (status != QDF_STATUS_SUCCESS)
return status;
status = spatial_reuse_send_partial_bssid_bit_map(vdev, pdev);
if (status != QDF_STATUS_SUCCESS)
return status;
} else {
mlme_debug("Spatial reuse not enabled");
}
status = spatial_reuse_send_pd_threshold(pdev,
vdev->vdev_objmgr.vdev_id,
val);
if (status != QDF_STATUS_SUCCESS)
return status;
return status;
}