Ver Fonte

qcacmn: Add support to send hw_mode in init cmd

Support to add hw_mode in init command is added by FW
to let host choose the mode to be use. Change init cmd
send API to enable upper layer to send the hw_mode selected.
Since this is new TLV in init command, init cmd send API
needs to be changed to accommodate this parameter.

Change-Id: I172d8d737425599c36666d9fec8a6cdd48085097
CRs-Fixed: 2004652
Kiran Venkatappa há 8 anos atrás
pai
commit
af1dae38ef
3 ficheiros alterados com 35 adições e 6 exclusões
  1. 1 3
      wmi_unified_api.h
  2. 33 0
      wmi_unified_param.h
  3. 1 3
      wmi_unified_priv.h

+ 1 - 3
wmi_unified_api.h

@@ -1101,9 +1101,7 @@ QDF_STATUS wmi_unified_set_psmode_cmd_send(void *wmi_hdl,
 				struct set_ps_mode_params *param);
 
 QDF_STATUS wmi_unified_init_cmd_send(void *wmi_hdl,
-				target_resource_config *res_cfg,
-				uint8_t num_mem_chunks,
-				struct wmi_host_mem_chunk *mem_chunk);
+				struct wmi_init_cmd_param *param);
 
 bool wmi_service_enabled(void *wmi_hdl, uint32_t service_id);
 

+ 33 - 0
wmi_unified_param.h

@@ -7090,6 +7090,7 @@ struct wmi_host_ppe_threshold {
  *                        to be communicated separately.
  * @WMI_HOST_HW_MODE_DBS_SBS: 3 PHYs, with 2 on the same band doing SBS
  *                           as in WMI_HW_MODE_SBS, and 3rd on the other band
+ * @WMI_HOST_HW_MODE_MAX: Max hw_mode_id. Used to indicate invalid mode.
  */
 enum wmi_host_hw_mode_config_type {
 	WMI_HOST_HW_MODE_SINGLE       = 0,
@@ -7097,6 +7098,7 @@ enum wmi_host_hw_mode_config_type {
 	WMI_HOST_HW_MODE_SBS_PASSIVE  = 2,
 	WMI_HOST_HW_MODE_SBS          = 3,
 	WMI_HOST_HW_MODE_DBS_SBS      = 4,
+	WMI_HOST_HW_MODE_MAX,
 };
 
 /**
@@ -7393,4 +7395,35 @@ struct wmi_host_proxy_ast_reserve_param {
 	uint32_t pdev_id;
 	uint32_t result;
 };
+
+/**
+ * struct wmi_host_pdev_band_to_mac - freq range for mac
+ * @pdev_id: PDEV ID to identifiy mac
+ * @start_freq: start frequency value
+ * @end_freq: end frequency value
+ */
+struct wmi_host_pdev_band_to_mac {
+	uint32_t pdev_id;
+	uint32_t start_freq;
+	uint32_t end_freq;
+};
+#define WMI_HOST_MAX_PDEV 3
+
+/**
+ * struct wmi_init_cmd_param - INIT command params
+ * @target_resource_config: pointer to resource config
+ * @num_mem_chunks: number of memory chunks
+ * @struct wmi_host_mem_chunk: pointer to memory chunks
+ * @hw_mode_index: HW mode index chosen
+ * @num_band_to_mac: Number of band to mac setting
+ * @struct wmi_host_pdev_band_to_mac: band to mac setting
+ */
+struct wmi_init_cmd_param {
+	target_resource_config *res_cfg;
+	uint8_t num_mem_chunks;
+	struct wmi_host_mem_chunk *mem_chunks;
+	uint32_t hw_mode_id;
+	uint32_t num_band_to_mac;
+	struct wmi_host_pdev_band_to_mac band_to_mac[WMI_HOST_MAX_PDEV];
+};
 #endif /* _WMI_UNIFIED_PARAM_H_ */

+ 1 - 3
wmi_unified_priv.h

@@ -923,9 +923,7 @@ host_mem_req * (*extract_host_mem_req)(wmi_unified_t wmi_handle,
 	void *evt_buf, uint8_t *num_entries);
 
 QDF_STATUS (*init_cmd_send)(wmi_unified_t wmi_handle,
-		target_resource_config *res_cfg,
-		uint8_t num_mem_chunks,
-		struct wmi_host_mem_chunk *mem_chunk);
+				struct wmi_init_cmd_param *param);
 
 QDF_STATUS (*save_fw_version)(wmi_unified_t wmi_handle, void *evt_buf);
 uint32_t (*ready_extract_init_status)(wmi_unified_t wmi_hdl, void *ev);