qcacmn: Add Bitmap support for Multi-Vdev-Restart
Update MVR handlers and init to setup/use MVR bitmap depending on bitmap MVR support by FW. Change-Id: I3a73ddefeae85d8f6b4fc31f9c1f1164fa5346c7 CRs-Fixed: 3355001
This commit is contained in:

committed by
Madan Koyyalamudi

parent
5c2acdff8d
commit
176650cce4
@@ -79,8 +79,8 @@
|
||||
#define WLAN_PDEV_F_STA_AMPDU_DIS 0x01000000
|
||||
/* do not send probe request in passive channel */
|
||||
#define WLAN_PDEV_F_STRICT_PSCAN_EN 0x02000000
|
||||
/* dupie (ANA,pre ANA ) */
|
||||
/*#define WLAN_PDEV_F_DUPIE 0x00200000*/
|
||||
/* Multivdev restart enabled with Bitmap */
|
||||
#define WLAN_PDEV_F_MULTIVDEV_RESTART_BMAP 0x04000000
|
||||
/* Chan concurrency enabled */
|
||||
#define WLAN_PDEV_F_CHAN_CONCURRENCY 0x08000000
|
||||
/* Multivdev restart enabled */
|
||||
|
@@ -181,7 +181,7 @@ wlan_serialization_create_cmd_pool(
|
||||
uint16_t cmd_pool_size)
|
||||
{
|
||||
struct wlan_serialization_command_list *cmd_list_ptr;
|
||||
uint8_t i;
|
||||
uint16_t i;
|
||||
QDF_STATUS status = QDF_STATUS_E_NOMEM;
|
||||
|
||||
qdf_list_create(&pdev_queue->cmd_pool_list, cmd_pool_size);
|
||||
@@ -230,8 +230,8 @@ static QDF_STATUS wlan_serialization_pdev_create_handler(
|
||||
QDF_STATUS status = QDF_STATUS_E_NOMEM;
|
||||
uint8_t index;
|
||||
uint8_t free_index;
|
||||
uint8_t max_active_cmds;
|
||||
uint8_t max_pending_cmds;
|
||||
uint16_t max_active_cmds;
|
||||
uint16_t max_pending_cmds;
|
||||
uint16_t cmd_pool_size;
|
||||
|
||||
ser_pdev_obj =
|
||||
|
@@ -802,12 +802,14 @@ static QDF_STATUS vdev_mgr_multiple_restart_param_update(
|
||||
param->cac_duration_ms = WLAN_DFS_WAIT_MS;
|
||||
param->num_vdevs = num_vdevs;
|
||||
|
||||
qdf_mem_copy(param->vdev_ids, vdev_ids,
|
||||
sizeof(uint32_t) * (param->num_vdevs));
|
||||
qdf_mem_copy(¶m->ch_param, chan,
|
||||
sizeof(struct mlme_channel_param));
|
||||
qdf_mem_copy(param->mvr_param, mvr_param,
|
||||
sizeof(*mvr_param) * (param->num_vdevs));
|
||||
|
||||
param->vdev_ids = vdev_ids;
|
||||
param->mvr_param = mvr_param;
|
||||
param->max_vdevs = wlan_pdev_get_max_vdev_count(pdev);
|
||||
param->mvr_bmap_enabled = wlan_pdev_nif_feat_cap_get(pdev,
|
||||
WLAN_PDEV_F_MULTIVDEV_RESTART_BMAP);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
@@ -411,7 +411,9 @@ struct vdev_mlme_mvr_param {
|
||||
* @num_vdevs: No. of vdevs that need to be restarted
|
||||
* @ch_param: Pointer to channel_param
|
||||
* @vdev_ids: Pointer to array of vdev_ids
|
||||
* @mvr_param: array holding multi vdev restart param
|
||||
* @mvr_param: Pointer to array of multi vdev restart param
|
||||
* @max_vdevs: Maximum vdev count of this pdev
|
||||
* @mvr_bmap_enabled: flag indicating mvr-bitmap support
|
||||
*/
|
||||
struct multiple_vdev_restart_params {
|
||||
uint32_t pdev_id;
|
||||
@@ -420,8 +422,10 @@ struct multiple_vdev_restart_params {
|
||||
uint32_t cac_duration_ms;
|
||||
uint32_t num_vdevs;
|
||||
struct mlme_channel_param ch_param;
|
||||
uint32_t vdev_ids[WLAN_UMAC_PDEV_MAX_VDEVS];
|
||||
struct vdev_mlme_mvr_param mvr_param[WLAN_UMAC_PDEV_MAX_VDEVS];
|
||||
uint32_t *vdev_ids;
|
||||
struct vdev_mlme_mvr_param *mvr_param;
|
||||
uint32_t max_vdevs;
|
||||
uint8_t mvr_bmap_enabled;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -6230,6 +6230,7 @@ typedef enum {
|
||||
wmi_service_obss_per_packet_sr_support,
|
||||
#endif
|
||||
wmi_service_wpa3_sha384_roam_support,
|
||||
wmi_service_multiple_vdev_restart_bmap,
|
||||
wmi_services_max,
|
||||
} wmi_conv_service_ids;
|
||||
#define WMI_SERVICE_UNAVAILABLE 0xFFFF
|
||||
|
@@ -21119,6 +21119,8 @@ static void populate_tlv_service(uint32_t *wmi_service)
|
||||
wmi_service[wmi_service_mawc] = WMI_SERVICE_MAWC;
|
||||
wmi_service[wmi_service_multiple_vdev_restart] =
|
||||
WMI_SERVICE_MULTIPLE_VDEV_RESTART;
|
||||
wmi_service[wmi_service_multiple_vdev_restart_bmap] =
|
||||
WMI_SERVICE_MULTIPLE_VDEV_RESTART_BITMAP_SUPPORT;
|
||||
wmi_service[wmi_service_smart_antenna_sw_support] =
|
||||
WMI_SERVICE_SMART_ANTENNA_SW_SUPPORT;
|
||||
wmi_service[wmi_service_smart_antenna_hw_support] =
|
||||
|
Reference in New Issue
Block a user