瀏覽代碼

qcacmn: Add support for multiple vdev set param WMI API

Add support for multi vdev set param WMI API to send vdev param for
multiple vaps.

Change-Id: If7381f0b242cacff0817e6bdc16606d3d776b48d
CRs-Fixed: 2994278
Shashikala Prabhu 3 年之前
父節點
當前提交
b2f8ff4e7f

+ 16 - 0
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

+ 3 - 0
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,

+ 15 - 1
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.

+ 12 - 1
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)
 {