qcacmn: Send BSS color bit map and partial bssid bitmap
Send BSS color and partial BSSID bitmap to fw when SR enable is sent to FW, so that FW can classify the srg and non-srg colors. Change-Id: I44711fd7e7cc05867d042a04e783ae29b04b388a CRs-Fixed: 3304796
This commit is contained in:

gecommit door
Madan Koyyalamudi

bovenliggende
32aaed0ec6
commit
8b79320b92
@@ -74,6 +74,75 @@ spatial_reuse_send_sr_prohibit_cfg(struct wlan_objmgr_vdev *vdev,
|
||||
return wmi_unified_vdev_param_sr_prohibit_send(wmi_handle, &srp_param);
|
||||
}
|
||||
|
||||
#ifdef OBSS_PD
|
||||
static QDF_STATUS
|
||||
spatial_reuse_send_bss_color_bit_map(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_objmgr_pdev *pdev)
|
||||
{
|
||||
uint64_t srg_color_bit_map = 0;
|
||||
uint32_t bit_map_0 = 0;
|
||||
uint32_t bit_map_1 = 0;
|
||||
struct wmi_unified *wmi_handle;
|
||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
|
||||
wmi_handle = lmac_get_pdev_wmi_handle(pdev);
|
||||
if (!wmi_handle)
|
||||
return QDF_STATUS_E_INVAL;
|
||||
|
||||
wlan_vdev_obj_lock(vdev);
|
||||
wlan_vdev_mlme_get_srg_bss_color_bit_map(vdev, &srg_color_bit_map);
|
||||
wlan_vdev_obj_unlock(vdev);
|
||||
bit_map_0 = (uint32_t) srg_color_bit_map;
|
||||
bit_map_1 = (uint32_t) (srg_color_bit_map >> 32);
|
||||
|
||||
status = wmi_unified_send_self_srg_bss_color_bitmap_set_cmd(
|
||||
wmi_handle, bit_map_0, bit_map_1,
|
||||
pdev->pdev_objmgr.wlan_pdev_id);
|
||||
return status;
|
||||
}
|
||||
|
||||
static QDF_STATUS
|
||||
spatial_reuse_send_partial_bssid_bit_map(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_objmgr_pdev *pdev)
|
||||
{
|
||||
uint64_t partial_bssid_bit_map = 0;
|
||||
uint32_t bit_map_0 = 0;
|
||||
uint32_t bit_map_1 = 0;
|
||||
struct wmi_unified *wmi_handle;
|
||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
|
||||
wmi_handle = lmac_get_pdev_wmi_handle(pdev);
|
||||
if (!wmi_handle)
|
||||
return QDF_STATUS_E_INVAL;
|
||||
|
||||
wlan_vdev_obj_lock(vdev);
|
||||
wlan_vdev_mlme_get_srg_partial_bssid_bit_map(vdev,
|
||||
&partial_bssid_bit_map);
|
||||
wlan_vdev_obj_unlock(vdev);
|
||||
bit_map_0 = (uint32_t) partial_bssid_bit_map;
|
||||
bit_map_1 = (uint32_t) (partial_bssid_bit_map >> 32);
|
||||
|
||||
status = wmi_unified_send_self_srg_partial_bssid_bitmap_set_cmd(
|
||||
wmi_handle, bit_map_0, bit_map_1,
|
||||
pdev->pdev_objmgr.wlan_pdev_id);
|
||||
return status;
|
||||
}
|
||||
#else
|
||||
static QDF_STATUS
|
||||
spatial_reuse_send_bss_color_bit_map(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_objmgr_pdev *pdev)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static QDF_STATUS
|
||||
spatial_reuse_send_partial_bssid_bit_map(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_objmgr_pdev *pdev)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
||||
static QDF_STATUS
|
||||
spatial_reuse_send_pd_threshold(struct wlan_objmgr_pdev *pdev,
|
||||
uint8_t vdev_id,
|
||||
@@ -143,11 +212,23 @@ spatial_reuse_set_sr_enable_disable(struct wlan_objmgr_vdev *vdev,
|
||||
wlan_vdev_obj_unlock(vdev);
|
||||
}
|
||||
|
||||
mlme_debug("non-srg param val: %u, enable: %d",
|
||||
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);
|
||||
if (status != QDF_STATUS_SUCCESS)
|
||||
return status;
|
||||
} else {
|
||||
mlme_debug("Spatial reuse not enabled");
|
||||
}
|
||||
|
Verwijs in nieuw issue
Block a user