From c4ffad74c3cb4779b77abe8e842c14b24dec8e48 Mon Sep 17 00:00:00 2001 From: Daniel Kim Date: Mon, 28 Oct 2019 10:54:05 -0700 Subject: [PATCH] qcacmn: Add WMI changes for dynamic HW mode switch (Phase 2) Add WMI changes for dynamic HW mode switch (Phase 2) as below. 1. Define new enum for dynamic hw mode switch type. 2. Extract tgt_pdev_id from mac_phy_caps_service_ready_ext event. Change-Id: I2f0f3d4ab78a3043fb56b4d7796678a5e68bed0f --- target_if/init_deinit/inc/service_ready_param.h | 2 ++ wmi/inc/wmi_unified_param.h | 15 +++++++++++++++ wmi/src/wmi_unified_tlv.c | 1 + 3 files changed, 18 insertions(+) diff --git a/target_if/init_deinit/inc/service_ready_param.h b/target_if/init_deinit/inc/service_ready_param.h index 80a5efacf4de..4c1675925def 100644 --- a/target_if/init_deinit/inc/service_ready_param.h +++ b/target_if/init_deinit/inc/service_ready_param.h @@ -179,6 +179,7 @@ struct wlan_psoc_host_hal_reg_cap_ext { * @chainmask_table_id: chain mask table id * @lmac_id: hw mac id * @reg_cap_ext: extended regulatory capabilities + * @tgt_pdev_id: target pdev id assigned and used by firmware */ struct wlan_psoc_host_mac_phy_caps { uint32_t hw_mode_id; @@ -217,6 +218,7 @@ struct wlan_psoc_host_mac_phy_caps { uint32_t chainmask_table_id; uint32_t lmac_id; struct wlan_psoc_host_hal_reg_cap_ext reg_cap_ext; + uint32_t tgt_pdev_id; }; /** diff --git a/wmi/inc/wmi_unified_param.h b/wmi/inc/wmi_unified_param.h index dd2f9559a236..776a64e6a880 100644 --- a/wmi/inc/wmi_unified_param.h +++ b/wmi/inc/wmi_unified_param.h @@ -6660,6 +6660,21 @@ enum wmi_host_hw_mode_config_type { WMI_HOST_HW_MODE_DETECT, }; +/** + * enum wmi_host_dynamic_hw_mode_config_type - Host defined enum for + * dynamic mode switch + * @WMI_HOST_DYNAMIC_HW_MODE_DISABLED: hw mode switch is disabled + * @WMI_HOST_DYNAMIC_HW_MODE_SLOW: hw mode switch with interface down/up + * @WMI_HOST_DYNAMIC_HW_MODE_FAST: hw mode switch without interface down/up + * @WMI_HOST_DYNAMIC_HW_MODE_MAX: Max value to indicate invalid mode + */ +enum wmi_host_dynamic_hw_mode_config_type { + WMI_HOST_DYNAMIC_HW_MODE_DISABLED = 0, + WMI_HOST_DYNAMIC_HW_MODE_SLOW = 1, + WMI_HOST_DYNAMIC_HW_MODE_FAST = 2, + WMI_HOST_DYNAMIC_HW_MODE_MAX, +}; + /* * struct wmi_host_peer_txmu_cnt_event * @tx_mu_transmitted - MU-MIMO tx count diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c index 159d0d294bf6..ee226d93f8c7 100644 --- a/wmi/src/wmi_unified_tlv.c +++ b/wmi/src/wmi_unified_tlv.c @@ -10037,6 +10037,7 @@ static QDF_STATUS extract_mac_phy_cap_service_ready_ext_tlv( param->pdev_id = wmi_handle->ops->convert_pdev_id_target_to_host( wmi_handle, mac_phy_caps->pdev_id); + param->tgt_pdev_id = mac_phy_caps->pdev_id; param->phy_id = mac_phy_caps->phy_id; param->supports_11b = WMI_SUPPORT_11B_GET(mac_phy_caps->supported_flags);