瀏覽代碼

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
gaurank kathpalia 6 年之前
父節點
當前提交
5fcefa93b0
共有 5 個文件被更改,包括 13 次插入1 次删除
  1. 3 0
      core/hdd/inc/wlan_hdd_main.h
  2. 2 1
      core/hdd/src/wlan_hdd_main.c
  3. 2 0
      core/wma/inc/wma.h
  4. 2 0
      core/wma/inc/wma_tgt_cfg.h
  5. 4 0
      core/wma/src/wma_main.c

+ 3 - 0
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;
+
 };
 
 /**

+ 2 - 1
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",

+ 2 - 0
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;

+ 2 - 0
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;

+ 4 - 0
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;