diff --git a/umac/mlme/vdev_mgr/dispatcher/inc/wlan_vdev_mgr_tgt_if_tx_defs.h b/umac/mlme/vdev_mgr/dispatcher/inc/wlan_vdev_mgr_tgt_if_tx_defs.h index 0c44146c68..adc401a8e1 100644 --- a/umac/mlme/vdev_mgr/dispatcher/inc/wlan_vdev_mgr_tgt_if_tx_defs.h +++ b/umac/mlme/vdev_mgr/dispatcher/inc/wlan_vdev_mgr_tgt_if_tx_defs.h @@ -384,6 +384,22 @@ struct multiple_vdev_restart_params { struct vdev_mlme_mvr_param mvr_param[WLAN_UMAC_PDEV_MAX_VDEVS]; }; +/** + * struct multiple_vdev_set_param - Multiple vdev set param command parameter + * @pdev_id: Pdev identifier + * @param_id: parameter id + * @param_value: parameter value + * @num_vdevs: number of vdevs + * @vdev_ids: Pointer to array of vdev_ids + */ +struct multiple_vdev_set_param { + uint32_t pdev_id; + uint32_t param_id; + uint32_t param_value; + uint32_t num_vdevs; + uint32_t vdev_ids[WLAN_UMAC_PDEV_MAX_VDEVS]; +}; + /** * struct peer_flush_params - peer flush cmd parameter * @peer_tid_bitmap: peer tid bitmap diff --git a/wmi/inc/wmi_unified_priv.h b/wmi/inc/wmi_unified_priv.h index 8b5e1c50ec..038c85785b 100644 --- a/wmi/inc/wmi_unified_priv.h +++ b/wmi/inc/wmi_unified_priv.h @@ -1915,6 +1915,9 @@ QDF_STATUS (*send_power_dbg_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_multiple_vdev_restart_req_cmd)(wmi_unified_t wmi_handle, struct multiple_vdev_restart_params *param); +QDF_STATUS (*send_multiple_vdev_set_param_cmd)( + wmi_unified_t wmi_handle, + struct multiple_vdev_set_param *param); #ifdef QCA_SUPPORT_AGILE_DFS QDF_STATUS (*send_adfs_ocac_abort_cmd)(wmi_unified_t wmi_handle, diff --git a/wmi/inc/wmi_unified_vdev_api.h b/wmi/inc/wmi_unified_vdev_api.h index 36cd628634..be1650c66d 100644 --- a/wmi/inc/wmi_unified_vdev_api.h +++ b/wmi/inc/wmi_unified_vdev_api.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2021 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -63,6 +63,20 @@ QDF_STATUS wmi_unified_send_multiple_vdev_restart_req_cmd( struct wmi_unified *wmi_handle, struct multiple_vdev_restart_params *param); +/** + * wmi_unified_send_multiple_vdev_set_param_cmd() - Send multiple vdev set param + * command + * @wmi_handle: wmi handle + * @param: multiple vdev restart parameter + * + * Send WMI_PDEV_MULTIPLE_VDEV_SET_PARAM_CMDID parameters to fw. + * + * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error + */ +QDF_STATUS wmi_unified_send_multiple_vdev_set_param_cmd( + struct wmi_unified *wmi_handle, + struct multiple_vdev_set_param *param); + /** * wmi_unified_beacon_send_cmd() - WMI beacon send function * @param wmi_handle: handle to WMI. diff --git a/wmi/src/wmi_unified_vdev_api.c b/wmi/src/wmi_unified_vdev_api.c index ed47697e69..0cd33a5929 100644 --- a/wmi/src/wmi_unified_vdev_api.c +++ b/wmi/src/wmi_unified_vdev_api.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2021 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -59,6 +59,17 @@ QDF_STATUS wmi_unified_send_multiple_vdev_restart_req_cmd( return QDF_STATUS_E_FAILURE; } +QDF_STATUS wmi_unified_send_multiple_vdev_set_param_cmd( + struct wmi_unified *wmi_handle, + struct multiple_vdev_set_param *param) +{ + if (wmi_handle->ops->send_multiple_vdev_set_param_cmd) + return wmi_handle->ops->send_multiple_vdev_set_param_cmd( + wmi_handle, param); + + return QDF_STATUS_E_FAILURE; +} + QDF_STATUS wmi_unified_beacon_send_cmd(struct wmi_unified *wmi_handle, struct beacon_params *param) {