From af1dae38ef72ec38f90b8b02502fb7643d64a359 Mon Sep 17 00:00:00 2001 From: Kiran Venkatappa Date: Fri, 23 Dec 2016 19:58:54 +0530 Subject: [PATCH] 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 --- wmi_unified_api.h | 4 +--- wmi_unified_param.h | 33 +++++++++++++++++++++++++++++++++ wmi_unified_priv.h | 4 +--- 3 files changed, 35 insertions(+), 6 deletions(-) diff --git a/wmi_unified_api.h b/wmi_unified_api.h index 76b1941c92..a9bea8c19b 100644 --- a/wmi_unified_api.h +++ b/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); diff --git a/wmi_unified_param.h b/wmi_unified_param.h index 8a6f1ca509..f6f578fb36 100644 --- a/wmi_unified_param.h +++ b/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_ */ diff --git a/wmi_unified_priv.h b/wmi_unified_priv.h index 43b26ec5ea..8c88003610 100644 --- a/wmi_unified_priv.h +++ b/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);