qcacld-3.0: Send PDEV Param command for SR
Send WMI_PDEV_PARAM_SET_CMD_OBSS_PD_THRESHOLD during PDEV init with disabled PD-Threshold value to initialize SR related registers in HW. Change-Id: I49e73c76974e098b6dfbf647a898b53abf8ea2ba CRs-Fixed: 3306179
This commit is contained in:

committed by
Madan Koyyalamudi

parent
983623c4b8
commit
6cdc4ce277
@@ -31,6 +31,7 @@
|
|||||||
#include "wlan_pdev_mlme_api.h"
|
#include "wlan_pdev_mlme_api.h"
|
||||||
#include "wlan_vdev_mgr_tgt_if_tx_api.h"
|
#include "wlan_vdev_mgr_tgt_if_tx_api.h"
|
||||||
#include "wlan_policy_mgr_public_struct.h"
|
#include "wlan_policy_mgr_public_struct.h"
|
||||||
|
#include "spatial_reuse_api.h"
|
||||||
|
|
||||||
QDF_STATUS ucfg_mlme_global_init(void)
|
QDF_STATUS ucfg_mlme_global_init(void)
|
||||||
{
|
{
|
||||||
@@ -119,6 +120,9 @@ QDF_STATUS ucfg_mlme_pdev_open(struct wlan_objmgr_pdev *pdev)
|
|||||||
}
|
}
|
||||||
pdev_mlme->mlme_register_ops = mlme_register_vdev_mgr_ops;
|
pdev_mlme->mlme_register_ops = mlme_register_vdev_mgr_ops;
|
||||||
|
|
||||||
|
/* Initialize MAC0/1 SR registers */
|
||||||
|
wlan_spatial_reuse_pdev_init(pdev);
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -37,6 +37,16 @@
|
|||||||
QDF_STATUS wlan_spatial_reuse_config_set(struct wlan_objmgr_vdev *vdev,
|
QDF_STATUS wlan_spatial_reuse_config_set(struct wlan_objmgr_vdev *vdev,
|
||||||
uint8_t sr_ctrl,
|
uint8_t sr_ctrl,
|
||||||
uint8_t non_srg_max_pd_offset);
|
uint8_t non_srg_max_pd_offset);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_spatial_reuse_pdev_init() - Send PDEV command with disabled
|
||||||
|
* PD threshold value to initialize HW
|
||||||
|
* registers
|
||||||
|
* @pdev: objmgr manager pdev
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS
|
||||||
|
*/
|
||||||
|
QDF_STATUS wlan_spatial_reuse_pdev_init(struct wlan_objmgr_pdev *pdev);
|
||||||
#else
|
#else
|
||||||
static inline
|
static inline
|
||||||
QDF_STATUS wlan_spatial_reuse_config_set(struct wlan_objmgr_vdev *vdev,
|
QDF_STATUS wlan_spatial_reuse_config_set(struct wlan_objmgr_vdev *vdev,
|
||||||
@@ -45,6 +55,12 @@ QDF_STATUS wlan_spatial_reuse_config_set(struct wlan_objmgr_vdev *vdev,
|
|||||||
{
|
{
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
QDF_STATUS wlan_spatial_reuse_pdev_init(struct wlan_objmgr_pdev *pdev)
|
||||||
|
{
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -18,6 +18,7 @@
|
|||||||
* DOC : contains interface prototypes for spatial_reuse api
|
* DOC : contains interface prototypes for spatial_reuse api
|
||||||
*/
|
*/
|
||||||
#include <spatial_reuse_api.h>
|
#include <spatial_reuse_api.h>
|
||||||
|
#include <target_if_spatial_reuse.h>
|
||||||
|
|
||||||
QDF_STATUS wlan_spatial_reuse_config_set(struct wlan_objmgr_vdev *vdev,
|
QDF_STATUS wlan_spatial_reuse_config_set(struct wlan_objmgr_vdev *vdev,
|
||||||
uint8_t sr_ctrl,
|
uint8_t sr_ctrl,
|
||||||
@@ -77,3 +78,39 @@ wlan_sr_setup_req(struct wlan_objmgr_vdev *vdev, struct wlan_objmgr_pdev *pdev,
|
|||||||
}
|
}
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QDF_STATUS wlan_spatial_reuse_pdev_init(struct wlan_objmgr_pdev *pdev)
|
||||||
|
{
|
||||||
|
struct pdev_params pparam;
|
||||||
|
wmi_unified_t wmi_handle;
|
||||||
|
bool sr_supported;
|
||||||
|
bool sr_per_ppdu_supported;
|
||||||
|
|
||||||
|
wmi_handle = GET_WMI_HDL_FROM_PDEV(pdev);
|
||||||
|
if (!wmi_handle) {
|
||||||
|
mlme_err("Failed to get WMI handle!");
|
||||||
|
return QDF_STATUS_E_INVAL;
|
||||||
|
}
|
||||||
|
sr_supported =
|
||||||
|
wmi_service_enabled(wmi_handle,
|
||||||
|
wmi_service_srg_srp_spatial_reuse_support);
|
||||||
|
sr_per_ppdu_supported =
|
||||||
|
wmi_service_enabled(wmi_handle,
|
||||||
|
wmi_service_obss_per_packet_sr_support);
|
||||||
|
if (!sr_per_ppdu_supported && !sr_supported) {
|
||||||
|
mlme_err("FW doesn't support");
|
||||||
|
return QDF_STATUS_E_NOSUPPORT;
|
||||||
|
}
|
||||||
|
|
||||||
|
qdf_mem_zero(&pparam, sizeof(pparam));
|
||||||
|
pparam.param_id = WMI_PDEV_PARAM_SET_CMD_OBSS_PD_THRESHOLD;
|
||||||
|
QDF_SET_BITS(pparam.param_value, NON_SRG_SPR_ENABLE_POS,
|
||||||
|
NON_SRG_SPR_ENABLE_SIZE, NON_SRG_SPR_ENABLE);
|
||||||
|
QDF_SET_BITS(pparam.param_value, SR_PARAM_VAL_DBM_POS,
|
||||||
|
NON_SRG_PARAM_VAL_DBM_SIZE, SR_PARAM_VAL_DBM_UNIT);
|
||||||
|
QDF_SET_BITS(pparam.param_value, NON_SRG_MAX_PD_OFFSET_POS,
|
||||||
|
NON_SRG_MAX_PD_OFFSET_SIZE, NON_SR_PD_THRESHOLD_DISABLED);
|
||||||
|
|
||||||
|
return wmi_unified_pdev_param_send(wmi_handle, &pparam,
|
||||||
|
WILDCARD_PDEV_ID);
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user