Explorar o código

qcacmn: Add host-FW handshake for 320 MHz bang radar support

FW-Host Handshake for BANG_RADAR_320_SUPPORT
1. FW advertises its capability of processing BANG_RADAR_320_SUPPORT
id via wmi service bit 'wmi_service_bang_radar_320_support'.
2. If the host is capable of processing the "BANG_RADAR_320_SUPPORT"
event id, host sends the capability in WMI_INIT_CMDID setting a bit in
host_service_flags

Change-Id: Ia26a7b8e8ee78aceb801d0053770379bd6d5a9cb
CRs-Fixed: 3270525
Jithender Miryala %!s(int64=2) %!d(string=hai) anos
pai
achega
354a68e77c

+ 6 - 0
target_if/init_deinit/src/init_event_handler.c

@@ -466,6 +466,12 @@ static int init_deinit_service_ext2_ready_event_handler(ol_scn_t scn_handle,
 					     WLAN_SOC_EXT_EVENT_SUPPORTED);
 	}
 
+	if (wmi_service_enabled(wmi_handle,
+				wmi_service_bang_radar_320_support)) {
+		info->wlan_res_cfg.is_host_dfs_320mhz_bangradar_supported =
+									   true;
+	}
+
 	/* dbr_ring_caps could have already come as part of EXT event */
 	if (info->service_ext2_param.num_dbr_ring_caps) {
 		err_code = init_deinit_populate_dbr_ring_cap_ext2(psoc,

+ 3 - 0
wmi/inc/wmi_unified_param.h

@@ -5800,6 +5800,7 @@ typedef enum {
 	wmi_service_ext_tpc_reg_support,
 	wmi_service_ndi_txbf_support,
 	wmi_service_reg_cc_ext_event_support,
+	wmi_service_bang_radar_320_support,
 #if defined(CONFIG_BAND_6GHZ)
 	wmi_service_lower_6g_edge_ch_supp,
 	wmi_service_disable_upper_6g_edge_ch_supp,
@@ -6216,6 +6217,7 @@ struct target_feature_set {
  * @nan_separate_iface_support: Separate iface creation for NAN
  * @time_sync_ftm: enable ftm based time sync
  * @is_reg_cc_ext_event_supported: Flag to indicate if reg_cc_ext is supported
+ * @is_host_dfs_320mhz_bangradar_supported Flag to indicate if dfs 320 supported
  * @max_rnr_neighbours: Max supported RNR neighbors in multisoc APs
  * @ema_max_vap_cnt: Number of maximum EMA tx-vaps at any instance of time
  * @ema_max_profile_period: Maximum EMA profile periodicity on any pdev
@@ -6343,6 +6345,7 @@ typedef struct {
 	bool nan_separate_iface_support;
 	bool time_sync_ftm;
 	bool is_reg_cc_ext_event_supported;
+	bool is_host_dfs_320mhz_bangradar_supported;
 	uint32_t max_rnr_neighbours;
 	uint32_t ema_max_vap_cnt;
 	uint32_t ema_max_profile_period;

+ 6 - 0
wmi/src/wmi_unified_tlv.c

@@ -8957,6 +8957,10 @@ void wmi_copy_resource_config(wmi_resource_config *resource_cfg,
 		resource_cfg->host_service_flags,
 		tgt_res_cfg->is_reg_cc_ext_event_supported);
 
+	WMI_RSRC_CFG_HOST_SERVICE_FLAG_BANG_RADAR_320M_SUPPORT_SET(
+		resource_cfg->host_service_flags,
+		tgt_res_cfg->is_host_dfs_320mhz_bangradar_supported);
+
 	WMI_RSRC_CFG_HOST_SERVICE_FLAG_LPI_SP_MODE_SUPPORT_SET(
 		resource_cfg->host_service_flags,
 		tgt_res_cfg->is_6ghz_sp_pwrmode_supp_enabled);
@@ -20673,6 +20677,8 @@ static void populate_tlv_service(uint32_t *wmi_service)
 			WMI_SERVICE_NDI_TXBF_SUPPORT;
 	wmi_service[wmi_service_reg_cc_ext_event_support] =
 			WMI_SERVICE_REG_CC_EXT_EVENT_SUPPORT;
+	wmi_service[wmi_service_bang_radar_320_support] =
+			WMI_SERVICE_BANG_RADAR_320_SUPPORT;
 #if defined(CONFIG_BAND_6GHZ)
 	wmi_service[wmi_service_lower_6g_edge_ch_supp] =
 			WMI_SERVICE_ENABLE_LOWER_6G_EDGE_CH_SUPP;