From 5fcefa93b0be53ab7fe4c7bd49e78ae0c2162b38 Mon Sep 17 00:00:00 2001 From: gaurank kathpalia Date: Wed, 24 Oct 2018 15:03:15 +0530 Subject: [PATCH] qcacld-3.0: Populate the per vdev chain capability in hdd context Populate the feature capability from wmi to hdd config Change-Id: I8931da53fb50229b405a2b7c1802a6d15a35781b CRs-Fixed: 2347619 --- core/hdd/inc/wlan_hdd_main.h | 3 +++ core/hdd/src/wlan_hdd_main.c | 3 ++- core/wma/inc/wma.h | 2 ++ core/wma/inc/wma_tgt_cfg.h | 2 ++ core/wma/src/wma_main.c | 4 ++++ 5 files changed, 13 insertions(+), 1 deletion(-) diff --git a/core/hdd/inc/wlan_hdd_main.h b/core/hdd/inc/wlan_hdd_main.h index 897573fb549c..9e77c15c7028 100644 --- a/core/hdd/inc/wlan_hdd_main.h +++ b/core/hdd/inc/wlan_hdd_main.h @@ -1744,6 +1744,7 @@ struct hdd_psoc { * @pdev: object manager pdev context * @g_event_flags: a bitmap of hdd_driver_flags * @psoc_idle_timeout_work: delayed work for psoc idle shutdown + * @dynamic_nss_chains_support: Per vdev dynamic nss chains update capability */ struct hdd_context { struct hdd_psoc *hdd_psoc; @@ -2020,6 +2021,8 @@ struct hdd_context { #endif enum sar_version sar_version; struct qdf_mac_addr dynamic_mac_list[QDF_MAX_CONCURRENCY_PERSONA]; + bool dynamic_nss_chains_support; + }; /** diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index b3ebf951519d..a69c873a707d 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -2043,7 +2043,8 @@ void hdd_update_tgt_cfg(hdd_handle_t hdd_handle, struct wma_tgt_cfg *cfg) hdd_update_vdev_nss(hdd_ctx); hdd_update_hw_dbs_capable(hdd_ctx); - + hdd_ctx->dynamic_nss_chains_support = + cfg->dynamic_nss_chains_support; hdd_ctx->config->fine_time_meas_cap &= cfg->fine_time_measurement_cap; hdd_ctx->fine_time_meas_cap_target = cfg->fine_time_measurement_cap; hdd_debug("fine_time_meas_cap: 0x%x", diff --git a/core/wma/inc/wma.h b/core/wma/inc/wma.h index 9129ab19e305..613ca0bb657c 100644 --- a/core/wma/inc/wma.h +++ b/core/wma/inc/wma.h @@ -1134,6 +1134,7 @@ struct wma_valid_channels { * @bandcapability: band capability configured through ini * @tx_bfee_8ss_enabled: Is Tx Beamformee support for 8x8 enabled? * @in_imps: Is device in Idle Mode Power Save? + * @dynamic_nss_chains_update: per vdev nss, chains update * @ito_repeat_count: Indicates ito repeated count * @wma_fw_time_sync_timer: timer used for firmware time sync * @critical_events_in_flight: number of suspend-preventing events @@ -1282,6 +1283,7 @@ typedef struct { uint8_t bandcapability; bool tx_bfee_8ss_enabled; bool in_imps; + bool dynamic_nss_chains_support; uint8_t ito_repeat_count; qdf_mc_timer_t wma_fw_time_sync_timer; qdf_atomic_t critical_events_in_flight; diff --git a/core/wma/inc/wma_tgt_cfg.h b/core/wma/inc/wma_tgt_cfg.h index ff10026ac9a9..a906be075574 100644 --- a/core/wma/inc/wma_tgt_cfg.h +++ b/core/wma/inc/wma_tgt_cfg.h @@ -177,6 +177,7 @@ struct board_info { * @he_cap: HE capability received from FW * @dfs_cac_offload: dfs and cac timer offloaded * @tx_bfee_8ss_enabled: Tx Beamformee support for 8x8 + * @dynamic_nss_chains_update: per vdev dynamic nss, chains update * @rcpi_enabled: for checking rcpi support * @obss_detection_offloaded: obss detection offloaded to firmware * @obss_color_collision_offloaded: obss color collision offloaded to firmware @@ -215,6 +216,7 @@ struct wma_tgt_cfg { #endif bool dfs_cac_offload; bool tx_bfee_8ss_enabled; + bool dynamic_nss_chains_support; bool rcpi_enabled; bool obss_detection_offloaded; bool obss_color_collision_offloaded; diff --git a/core/wma/src/wma_main.c b/core/wma/src/wma_main.c index 086a6cebb66f..ec3f34be49ba 100644 --- a/core/wma/src/wma_main.c +++ b/core/wma/src/wma_main.c @@ -5563,6 +5563,8 @@ static void wma_update_hdd_cfg(tp_wma_handle wma_handle) tgt_cfg.wmi_max_len = wmi_get_max_msg_len(wma_handle->wmi_handle) - WMI_TLV_HEADROOM; tgt_cfg.tx_bfee_8ss_enabled = wma_handle->tx_bfee_8ss_enabled; + tgt_cfg.dynamic_nss_chains_support = + wma_handle->dynamic_nss_chains_support; wma_update_obss_detection_support(wma_handle, &tgt_cfg); wma_update_obss_color_collision_support(wma_handle, &tgt_cfg); wma_update_hdd_cfg_ndp(wma_handle, &tgt_cfg); @@ -6010,6 +6012,8 @@ int wma_rx_service_ready_event(void *handle, uint8_t *cmd_param_info, wma_handle->tx_bfee_8ss_enabled = wmi_service_enabled(wmi_handle, wmi_service_8ss_tx_bfee); + wma_handle->dynamic_nss_chains_support = wmi_service_enabled(wmi_handle, + wmi_service_per_vdev_chain_support); target_psoc_set_num_radios(tgt_hdl, 1); return 0;