qcacmn: FW-Host Handshake for REG_CHAN_LIST_CC_EVENT
In order to support different power levels of 6G AP and client, the channel list event from FW namely "REG_CHAN_LIST_CC_EVENTID" is modified to add few parameters specific to 6GHZ devices. Hence the existing event is replaced by REG_CHAN_LIST_CC_EVENT_EXT for all 2G/5G/6G pdevs in FW. Therefore, after the service ready event, FW sends the channel list for the configured country/regdomain via REG_CHAN_LIST_CC_EVENT_EXT. This mandates that all host software need to have the processing capability of REG_CHAN_LIST_CC_EVENT_EXT to bring up the AP. As there can be host software which has not yet implemented the version of "REG_CHAN_LIST_CC_EVENT_EXT", backward compatibility is lost if "ONLY REG_CHAN_LIST_CC_EVENT_EXT" is sent by FW. Hence a 3 way handshake between host and FW is established. 1. FW advertises its capability of processing REG_CHAN_LIST_CC_EVENT_EXT id via wmi service bit 'wmi_service_reg_cc_ext_event_support'. 2. If the host is capable of processing the "REG_CHAN_LIST_CC_EVENT_EXT" event id (which is done based on registration of this event), host sends the capability in WMI_INIT_CMDID setting a bit in host_service_flags. 3. Based on host capability advertised in WMI_INIT_CMDID, FW decides to send the old event ("REG_CHAN_LIST_CC_EVENTID") or the new event ("REG_CHAN_LIST_CC_EVENT_EXT"). 4. If there is no flag indicated by host to FW in WMI_INIT_CMDID, FW by default sends the old event ("REG_CHAN_LIST_CC_EVENTID"). CRs-Fixed: 2876360 Change-Id: Ibe95f414ad9fff0e5641bcc6e60450ef9afe245b
This commit is contained in:

کامیت شده توسط
AnjaneeDevi Kapparapu

والد
7fe3773331
کامیت
d617a3a77f
@@ -5108,6 +5108,7 @@ typedef enum {
|
||||
wmi_service_go_connected_d3_wow,
|
||||
wmi_service_ext_tpc_reg_support,
|
||||
wmi_service_ndi_txbf_support,
|
||||
wmi_service_reg_cc_ext_event_support,
|
||||
wmi_services_max,
|
||||
} wmi_conv_service_ids;
|
||||
#define WMI_SERVICE_UNAVAILABLE 0xFFFF
|
||||
@@ -5247,6 +5248,7 @@ struct wmi_host_fw_abi_ver {
|
||||
* @ast_tid_low_mask_enable: enable tid valid mask for low priority flow
|
||||
* @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
|
||||
* @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
|
||||
@@ -5354,6 +5356,7 @@ typedef struct {
|
||||
ast_tid_low_mask_enable:8;
|
||||
bool nan_separate_iface_support;
|
||||
bool time_sync_ftm;
|
||||
bool is_reg_cc_ext_event_supported;
|
||||
uint32_t max_rnr_neighbours;
|
||||
uint32_t ema_max_vap_cnt;
|
||||
uint32_t ema_max_profile_period;
|
||||
|
@@ -7339,6 +7339,10 @@ void wmi_copy_resource_config(wmi_resource_config *resource_cfg,
|
||||
if (tgt_res_cfg->is_go_connected_d3wow_enabled)
|
||||
WMI_RSRC_CFG_FLAGS2_IS_GO_CONNECTED_D3WOW_ENABLED_SET(
|
||||
resource_cfg->flags2, 1);
|
||||
|
||||
WMI_RSRC_CFG_HOST_SERVICE_FLAG_REG_CC_EXT_SUPPORT_SET(
|
||||
resource_cfg->host_service_flags,
|
||||
tgt_res_cfg->is_reg_cc_ext_event_supported);
|
||||
}
|
||||
|
||||
/* copy_hw_mode_id_in_init_cmd() - Helper routine to copy hw_mode in init cmd
|
||||
@@ -15762,6 +15766,8 @@ static void populate_tlv_service(uint32_t *wmi_service)
|
||||
WMI_SERVICE_EXT_TPC_REG_SUPPORT;
|
||||
wmi_service[wmi_service_ndi_txbf_support] =
|
||||
WMI_SERVICE_NDI_TXBF_SUPPORT;
|
||||
wmi_service[wmi_service_reg_cc_ext_event_support] =
|
||||
WMI_SERVICE_REG_CC_EXT_EVENT_SUPPORT;
|
||||
}
|
||||
|
||||
/**
|
||||
|
مرجع در شماره جدید
Block a user