From da92110871f1d716f006460a113c3cd429553f0c Mon Sep 17 00:00:00 2001 From: Surya Prakash Raajen Date: Mon, 13 May 2019 17:49:13 +0530 Subject: [PATCH] qca-wifi: Use arrays for param conversion from host to target type Convert host param id to target param id using arrays instead of switch case. This enables removal of CONFIG_MCL compile time macro and use specific macro ENABLE_HOST_TO_TARGET_CONVERSION for conversion Change-Id: I4dae15baac0c74846155a5f1ee3328dfc2f28ad5 CRs-Fixed: 2418030 --- wmi/src/wmi_unified_non_tlv.c | 808 ++++++++++++++++------------------ 1 file changed, 369 insertions(+), 439 deletions(-) diff --git a/wmi/src/wmi_unified_non_tlv.c b/wmi/src/wmi_unified_non_tlv.c index bae0adac46..172aaa7965 100644 --- a/wmi/src/wmi_unified_non_tlv.c +++ b/wmi/src/wmi_unified_non_tlv.c @@ -35,6 +35,307 @@ /* HTC service id for WMI */ static const uint32_t svc_ids[] = {WMI_CONTROL_SVC}; +#ifdef ENABLE_HOST_TO_TARGET_CONVERSION +/** + * Populate peer_param_id_non_tlv array whose index is host param and value + * is target param + */ +static const uint32_t peer_param_non_tlv[] = { + [WMI_HOST_PEER_MIMO_PS_STATE] = WMI_PEER_MIMO_PS_STATE, + [WMI_HOST_PEER_AMPDU] = WMI_PEER_AMPDU, + [WMI_HOST_PEER_AUTHORIZE] = WMI_PEER_AUTHORIZE, + [WMI_HOST_PEER_CHWIDTH] = WMI_PEER_CHWIDTH, + [WMI_HOST_PEER_NSS] = WMI_PEER_NSS, + [WMI_HOST_PEER_USE_4ADDR] = WMI_PEER_USE_4ADDR, + [WMI_HOST_PEER_USE_FIXED_PWR] = WMI_PEER_USE_FIXED_PWR, + [WMI_HOST_PEER_PARAM_FIXED_RATE] = WMI_PEER_PARAM_FIXED_RATE, + [WMI_HOST_PEER_SET_MU_WHITELIST] = WMI_PEER_SET_MU_WHITELIST, + [WMI_HOST_PEER_EXT_STATS_ENABLE] = WMI_PEER_EXT_STATS_ENABLE, + [WMI_HOST_PEER_NSS_VHT160] = WMI_PEER_NSS_VHT160, + [WMI_HOST_PEER_NSS_VHT80_80] = WMI_PEER_NSS_VHT80_80, +}; + +/** + * Populate pdev_param_non_tlv array whose index is host param and the value is + * target param. + */ +static const uint32_t pdev_param_non_tlv[] = { + [wmi_pdev_param_tx_chain_mask] = WMI_PDEV_PARAM_TX_CHAIN_MASK, + [wmi_pdev_param_rx_chain_mask] = WMI_PDEV_PARAM_RX_CHAIN_MASK, + [wmi_pdev_param_txpower_limit2g] = WMI_PDEV_PARAM_TXPOWER_LIMIT2G, + [wmi_pdev_param_txpower_limit5g] = WMI_PDEV_PARAM_TXPOWER_LIMIT5G, + [wmi_pdev_param_txpower_scale] = WMI_PDEV_PARAM_TXPOWER_SCALE, + [wmi_pdev_param_beacon_gen_mode] = WMI_PDEV_PARAM_BEACON_GEN_MODE, + [wmi_pdev_param_beacon_tx_mode] = WMI_PDEV_PARAM_BEACON_TX_MODE, + [wmi_pdev_param_resmgr_offchan_mode] = + WMI_PDEV_PARAM_RESMGR_OFFCHAN_MODE, + [wmi_pdev_param_protection_mode] = WMI_PDEV_PARAM_PROTECTION_MODE, + [wmi_pdev_param_dynamic_bw] = WMI_PDEV_PARAM_DYNAMIC_BW, + [wmi_pdev_param_non_agg_sw_retry_th] = + WMI_PDEV_PARAM_NON_AGG_SW_RETRY_TH, + [wmi_pdev_param_agg_sw_retry_th] = WMI_PDEV_PARAM_AGG_SW_RETRY_TH, + [wmi_pdev_param_sta_kickout_th] = WMI_PDEV_PARAM_STA_KICKOUT_TH, + [wmi_pdev_param_ac_aggrsize_scaling] = + WMI_PDEV_PARAM_AC_AGGRSIZE_SCALING, + [wmi_pdev_param_ltr_enable] = WMI_PDEV_PARAM_LTR_ENABLE, + [wmi_pdev_param_ltr_ac_latency_be] = WMI_PDEV_PARAM_LTR_AC_LATENCY_BE, + [wmi_pdev_param_ltr_ac_latency_bk] = WMI_PDEV_PARAM_LTR_AC_LATENCY_BK, + [wmi_pdev_param_ltr_ac_latency_vi] = WMI_PDEV_PARAM_LTR_AC_LATENCY_VI, + [wmi_pdev_param_ltr_ac_latency_vo] = WMI_PDEV_PARAM_LTR_AC_LATENCY_VO, + [wmi_pdev_param_ltr_ac_latency_timeout] = + WMI_PDEV_PARAM_LTR_AC_LATENCY_TIMEOUT, + [wmi_pdev_param_ltr_sleep_override] = WMI_PDEV_PARAM_LTR_SLEEP_OVERRIDE, + [wmi_pdev_param_ltr_rx_override] = WMI_PDEV_PARAM_LTR_RX_OVERRIDE, + [wmi_pdev_param_ltr_tx_activity_timeout] = + WMI_PDEV_PARAM_LTR_TX_ACTIVITY_TIMEOUT, + [wmi_pdev_param_l1ss_enable] = WMI_PDEV_PARAM_L1SS_ENABLE, + [wmi_pdev_param_dsleep_enable] = WMI_PDEV_PARAM_DSLEEP_ENABLE, + [wmi_pdev_param_pcielp_txbuf_flush] = WMI_PDEV_PARAM_PCIELP_TXBUF_FLUSH, + [wmi_pdev_param_pcielp_txbuf_watermark] = + WMI_PDEV_PARAM_PCIELP_TXBUF_WATERMARK, + [wmi_pdev_param_pcielp_txbuf_tmo_en] = + WMI_PDEV_PARAM_PCIELP_TXBUF_TMO_EN, + [wmi_pdev_param_pcielp_txbuf_tmo_value] = + WMI_PDEV_PARAM_PCIELP_TXBUF_TMO_VALUE, + [wmi_pdev_param_pdev_stats_update_period] = + WMI_PDEV_PARAM_PDEV_STATS_UPDATE_PERIOD, + [wmi_pdev_param_vdev_stats_update_period] = + WMI_PDEV_PARAM_VDEV_STATS_UPDATE_PERIOD, + [wmi_pdev_param_peer_stats_update_period] = + WMI_PDEV_PARAM_PEER_STATS_UPDATE_PERIOD, + [wmi_pdev_param_bcnflt_stats_update_period] = + WMI_PDEV_PARAM_BCNFLT_STATS_UPDATE_PERIOD, + [wmi_pdev_param_pmf_qos] = WMI_PDEV_PARAM_PMF_QOS, + [wmi_pdev_param_arp_ac_override] = WMI_PDEV_PARAM_ARP_AC_OVERRIDE, + [wmi_pdev_param_dcs] = WMI_PDEV_PARAM_DCS, + [wmi_pdev_param_ani_enable] = WMI_PDEV_PARAM_ANI_ENABLE, + [wmi_pdev_param_ani_poll_period] = WMI_PDEV_PARAM_ANI_POLL_PERIOD, + [wmi_pdev_param_ani_listen_period] = WMI_PDEV_PARAM_ANI_LISTEN_PERIOD, + [wmi_pdev_param_ani_ofdm_level] = WMI_PDEV_PARAM_ANI_OFDM_LEVEL, + [wmi_pdev_param_ani_cck_level] = WMI_PDEV_PARAM_ANI_CCK_LEVEL, + [wmi_pdev_param_dyntxchain] = WMI_PDEV_PARAM_DYNTXCHAIN, + [wmi_pdev_param_proxy_sta] = WMI_PDEV_PARAM_PROXY_STA, + [wmi_pdev_param_idle_ps_config] = WMI_PDEV_PARAM_IDLE_PS_CONFIG, + [wmi_pdev_param_power_gating_sleep] = WMI_PDEV_PARAM_POWER_GATING_SLEEP, + [wmi_pdev_param_aggr_burst] = WMI_PDEV_PARAM_AGGR_BURST, + [wmi_pdev_param_rx_decap_mode] = WMI_PDEV_PARAM_RX_DECAP_MODE, + [wmi_pdev_param_fast_channel_reset] = WMI_PDEV_PARAM_FAST_CHANNEL_RESET, + [wmi_pdev_param_burst_dur] = WMI_PDEV_PARAM_BURST_DUR, + [wmi_pdev_param_burst_enable] = WMI_PDEV_PARAM_BURST_ENABLE, + [wmi_pdev_param_smart_antenna_default_antenna] = + WMI_PDEV_PARAM_SMART_ANTENNA_DEFAULT_ANTENNA, + [wmi_pdev_param_igmpmld_override] = WMI_PDEV_PARAM_IGMPMLD_OVERRIDE, + [wmi_pdev_param_igmpmld_tid] = WMI_PDEV_PARAM_IGMPMLD_TID, + [wmi_pdev_param_antenna_gain] = WMI_PDEV_PARAM_ANTENNA_GAIN, + [wmi_pdev_param_rx_filter] = WMI_PDEV_PARAM_RX_FILTER, + [wmi_pdev_set_mcast_to_ucast_tid] = WMI_PDEV_SET_MCAST_TO_UCAST_TID, + [wmi_pdev_param_proxy_sta_mode] = WMI_PDEV_PARAM_PROXY_STA_MODE, + [wmi_pdev_param_set_mcast2ucast_mode] = + WMI_PDEV_PARAM_SET_MCAST2UCAST_MODE, + [wmi_pdev_param_set_mcast2ucast_buffer] = + WMI_PDEV_PARAM_SET_MCAST2UCAST_BUFFER, + [wmi_pdev_param_remove_mcast2ucast_buffer] = + WMI_PDEV_PARAM_REMOVE_MCAST2UCAST_BUFFER, + [wmi_pdev_peer_sta_ps_statechg_enable] = + WMI_PDEV_PEER_STA_PS_STATECHG_ENABLE, + [wmi_pdev_param_block_interbss] = WMI_PDEV_PARAM_BLOCK_INTERBSS, + [wmi_pdev_param_set_disable_reset_cmdid] = + WMI_PDEV_PARAM_SET_DISABLE_RESET_CMDID, + [wmi_pdev_param_set_msdu_ttl_cmdid] = WMI_PDEV_PARAM_SET_MSDU_TTL_CMDID, + [wmi_pdev_param_set_ppdu_duration_cmdid] = + WMI_PDEV_PARAM_SET_PPDU_DURATION_CMDID, + [wmi_pdev_param_txbf_sound_period_cmdid] = + WMI_PDEV_PARAM_TXBF_SOUND_PERIOD_CMDID, + [wmi_pdev_param_set_promisc_mode_cmdid] = + WMI_PDEV_PARAM_SET_PROMISC_MODE_CMDID, + [wmi_pdev_param_set_burst_mode_cmdid] = + WMI_PDEV_PARAM_SET_BURST_MODE_CMDID, + [wmi_pdev_param_en_stats] = WMI_PDEV_PARAM_EN_STATS, + [wmi_pdev_param_mu_group_policy] = WMI_PDEV_PARAM_MU_GROUP_POLICY, + [wmi_pdev_param_noise_detection] = WMI_PDEV_PARAM_NOISE_DETECTION, + [wmi_pdev_param_noise_threshold] = WMI_PDEV_PARAM_NOISE_THRESHOLD, + [wmi_pdev_param_dpd_enable] = WMI_PDEV_PARAM_DPD_ENABLE, + [wmi_pdev_param_set_mcast_bcast_echo] = + WMI_PDEV_PARAM_SET_MCAST_BCAST_ECHO, + [wmi_pdev_param_atf_strict_sch] = WMI_PDEV_PARAM_ATF_STRICT_SCH, + [wmi_pdev_param_atf_sched_duration] = WMI_PDEV_PARAM_ATF_SCHED_DURATION, + [wmi_pdev_param_ant_plzn] = WMI_PDEV_PARAM_ANT_PLZN, + [wmi_pdev_param_mgmt_retry_limit] = WMI_PDEV_PARAM_MGMT_RETRY_LIMIT, + [wmi_pdev_param_sensitivity_level] = WMI_PDEV_PARAM_SENSITIVITY_LEVEL, + [wmi_pdev_param_signed_txpower_2g] = WMI_PDEV_PARAM_SIGNED_TXPOWER_2G, + [wmi_pdev_param_signed_txpower_5g] = WMI_PDEV_PARAM_SIGNED_TXPOWER_5G, + [wmi_pdev_param_enable_per_tid_amsdu] = + WMI_PDEV_PARAM_ENABLE_PER_TID_AMSDU, + [wmi_pdev_param_enable_per_tid_ampdu] = + WMI_PDEV_PARAM_ENABLE_PER_TID_AMPDU, + [wmi_pdev_param_cca_threshold] = WMI_PDEV_PARAM_CCA_THRESHOLD, + [wmi_pdev_param_rts_fixed_rate] = WMI_PDEV_PARAM_RTS_FIXED_RATE, + [wmi_pdev_param_cal_period] = WMI_PDEV_PARAM_CAL_PERIOD, + [wmi_pdev_param_pdev_reset] = WMI_PDEV_PARAM_PDEV_RESET, + [wmi_pdev_param_wapi_mbssid_offset] = WMI_PDEV_PARAM_WAPI_MBSSID_OFFSET, + [wmi_pdev_param_arp_srcaddr] = WMI_PDEV_PARAM_ARP_SRCADDR, + [wmi_pdev_param_arp_dstaddr] = WMI_PDEV_PARAM_ARP_DSTADDR, + [wmi_pdev_param_txpower_decr_db] = WMI_PDEV_PARAM_TXPOWER_DECR_DB, + [wmi_pdev_param_rx_batchmode] = WMI_PDEV_PARAM_RX_BATCHMODE, + [wmi_pdev_param_packet_aggr_delay] = WMI_PDEV_PARAM_PACKET_AGGR_DELAY, + [wmi_pdev_param_atf_obss_noise_sch] = WMI_PDEV_PARAM_ATF_OBSS_NOISE_SCH, + [wmi_pdev_param_atf_obss_noise_scaling_factor] = + WMI_PDEV_PARAM_ATF_OBSS_NOISE_SCALING_FACTOR, + [wmi_pdev_param_cust_txpower_scale] = WMI_PDEV_PARAM_CUST_TXPOWER_SCALE, + [wmi_pdev_param_atf_dynamic_enable] = WMI_PDEV_PARAM_ATF_DYNAMIC_ENABLE, + [wmi_pdev_param_atf_ssid_group_policy] = + WMI_PDEV_PARAM_ATF_SSID_GROUP_POLICY, + [wmi_pdev_param_enable_btcoex] = WMI_PDEV_PARAM_ENABLE_BTCOEX, + [wmi_pdev_param_atf_peer_stats] = WMI_PDEV_PARAM_ATF_PEER_STATS, + [wmi_pdev_param_tx_ack_timeout] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_soft_tx_chain_mask] = WMI_PDEV_PARAM_SOFT_TX_CHAIN_MASK, + [wmi_pdev_param_esp_indication_period] = + WMI_PDEV_PARAM_ESP_INDICATION_PERIOD, + [wmi_pdev_param_esp_ba_window] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_esp_airtime_fraction] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_esp_ppdu_duration] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_rfkill_enable] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_hw_rfkill_config] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_low_power_rf_enable] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_l1ss_track] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_hyst_en] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_power_collapse_enable] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_led_sys_state] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_led_enable] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_audio_over_wlan_latency] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_audio_over_wlan_enable] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_whal_mib_stats_update_enable] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_vdev_rate_stats_update_period] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_cts_cbw] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_wnts_config] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_adaptive_early_rx_enable] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_adaptive_early_rx_min_sleep_slop] = + WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_adaptive_early_rx_inc_dec_step] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_early_rx_fix_sleep_slop] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_bmiss_based_adaptive_bto_enable] = + WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_bmiss_bto_min_bcn_timeout] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_bmiss_bto_inc_dec_step] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_bto_fix_bcn_timeout] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_ce_based_adaptive_bto_enable] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_ce_bto_combo_ce_value] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_tx_chain_mask_2g] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_rx_chain_mask_2g] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_tx_chain_mask_5g] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_rx_chain_mask_5g] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_tx_chain_mask_cck] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_tx_chain_mask_1ss] = WMI_UNAVAILABLE_PARAM, + [wmi_pdev_param_antenna_gain_half_db] = + WMI_PDEV_PARAM_ANTENNA_GAIN_HALF_DB, + [wmi_pdev_param_enable_peer_retry_stats] = + WMI_PDEV_PARAM_ENABLE_PEER_RETRY_STATS, + [wmi_pdev_param_per_peer_prd_cfr_enable] = + WMI_PDEV_PARAM_PER_PEER_PERIODIC_CFR_ENABLE, +}; + +/** + * Populate vdev_param_non_tlv array whose index is host param and value is + * target param. + */ +static const uint32_t vdev_param_non_tlv[] = { + [wmi_vdev_param_rts_threshold] = WMI_VDEV_PARAM_RTS_THRESHOLD, + [wmi_vdev_param_fragmentation_threshold] = + WMI_VDEV_PARAM_FRAGMENTATION_THRESHOLD, + [wmi_vdev_param_beacon_interval] = WMI_VDEV_PARAM_BEACON_INTERVAL, + [wmi_vdev_param_listen_interval] = WMI_VDEV_PARAM_LISTEN_INTERVAL, + [wmi_vdev_param_multicast_rate] = WMI_VDEV_PARAM_MULTICAST_RATE, + [wmi_vdev_param_mgmt_tx_rate] = WMI_VDEV_PARAM_MGMT_TX_RATE, + [wmi_vdev_param_slot_time] = WMI_VDEV_PARAM_SLOT_TIME, + [wmi_vdev_param_preamble] = WMI_VDEV_PARAM_PREAMBLE, + [wmi_vdev_param_swba_time] = WMI_VDEV_PARAM_SWBA_TIME, + [wmi_vdev_stats_update_period] = WMI_VDEV_STATS_UPDATE_PERIOD, + [wmi_vdev_pwrsave_ageout_time] = WMI_VDEV_PWRSAVE_AGEOUT_TIME, + [wmi_vdev_host_swba_interval] = WMI_VDEV_HOST_SWBA_INTERVAL, + [wmi_vdev_param_dtim_period] = WMI_VDEV_PARAM_DTIM_PERIOD, + [wmi_vdev_oc_scheduler_air_time_limit] = + WMI_VDEV_OC_SCHEDULER_AIR_TIME_LIMIT, + [wmi_vdev_param_wds] = WMI_VDEV_PARAM_WDS, + [wmi_vdev_param_atim_window] = WMI_VDEV_PARAM_ATIM_WINDOW, + [wmi_vdev_param_bmiss_count_max] = WMI_VDEV_PARAM_BMISS_COUNT_MAX, + [wmi_vdev_param_bmiss_first_bcnt] = WMI_VDEV_PARAM_BMISS_FIRST_BCNT, + [wmi_vdev_param_bmiss_final_bcnt] = WMI_VDEV_PARAM_BMISS_FINAL_BCNT, + [wmi_vdev_param_feature_wmm] = WMI_VDEV_PARAM_FEATURE_WMM, + [wmi_vdev_param_chwidth] = WMI_VDEV_PARAM_CHWIDTH, + [wmi_vdev_param_chextoffset] = WMI_VDEV_PARAM_CHEXTOFFSET, + [wmi_vdev_param_disable_htprotection] = + WMI_VDEV_PARAM_DISABLE_HTPROTECTION, + [wmi_vdev_param_sta_quickkickout] = WMI_VDEV_PARAM_STA_QUICKKICKOUT, + [wmi_vdev_param_mgmt_rate] = WMI_VDEV_PARAM_MGMT_RATE, + [wmi_vdev_param_protection_mode] = WMI_VDEV_PARAM_PROTECTION_MODE, + [wmi_vdev_param_fixed_rate] = WMI_VDEV_PARAM_FIXED_RATE, + [wmi_vdev_param_sgi] = WMI_VDEV_PARAM_SGI, + [wmi_vdev_param_ldpc] = WMI_VDEV_PARAM_LDPC, + [wmi_vdev_param_tx_stbc] = WMI_VDEV_PARAM_TX_STBC, + [wmi_vdev_param_rx_stbc] = WMI_VDEV_PARAM_RX_STBC, + [wmi_vdev_param_intra_bss_fwd] = WMI_VDEV_PARAM_INTRA_BSS_FWD, + [wmi_vdev_param_def_keyid] = WMI_VDEV_PARAM_DEF_KEYID, + [wmi_vdev_param_nss] = WMI_VDEV_PARAM_NSS, + [wmi_vdev_param_bcast_data_rate] = WMI_VDEV_PARAM_BCAST_DATA_RATE, + [wmi_vdev_param_mcast_data_rate] = WMI_VDEV_PARAM_MCAST_DATA_RATE, + [wmi_vdev_param_mcast_indicate] = WMI_VDEV_PARAM_MCAST_INDICATE, + [wmi_vdev_param_dhcp_indicate] = WMI_VDEV_PARAM_DHCP_INDICATE, + [wmi_vdev_param_unknown_dest_indicate] = + WMI_VDEV_PARAM_UNKNOWN_DEST_INDICATE, + [wmi_vdev_param_ap_keepalive_min_idle_inactive_time_secs] = + WMI_VDEV_PARAM_AP_KEEPALIVE_MIN_IDLE_INACTIVE_TIME_SECS, + [wmi_vdev_param_ap_keepalive_max_idle_inactive_time_secs] = + WMI_VDEV_PARAM_AP_KEEPALIVE_MAX_IDLE_INACTIVE_TIME_SECS, + [wmi_vdev_param_ap_keepalive_max_unresponsive_time_secs] = + WMI_VDEV_PARAM_AP_KEEPALIVE_MAX_UNRESPONSIVE_TIME_SECS, + [wmi_vdev_param_ap_enable_nawds] = WMI_VDEV_PARAM_AP_ENABLE_NAWDS, + [wmi_vdev_param_mcast2ucast_set] = WMI_VDEV_PARAM_MCAST2UCAST_SET, + [wmi_vdev_param_enable_rtscts] = WMI_VDEV_PARAM_ENABLE_RTSCTS, + [wmi_vdev_param_rc_num_retries] = WMI_VDEV_PARAM_RC_NUM_RETRIES, + [wmi_vdev_param_txbf] = WMI_VDEV_PARAM_TXBF, + [wmi_vdev_param_packet_powersave] = WMI_VDEV_PARAM_PACKET_POWERSAVE, + [wmi_vdev_param_drop_unencry] = WMI_VDEV_PARAM_DROP_UNENCRY, + [wmi_vdev_param_tx_encap_type] = WMI_VDEV_PARAM_TX_ENCAP_TYPE, + [wmi_vdev_param_ap_detect_out_of_sync_sleeping_sta_time_secs] = + WMI_VDEV_PARAM_AP_DETECT_OUT_OF_SYNC_SLEEPING_STA_TIME_SECS, + [wmi_vdev_param_cabq_maxdur] = WMI_VDEV_PARAM_CABQ_MAXDUR, + [wmi_vdev_param_mfptest_set] = WMI_VDEV_PARAM_MFPTEST_SET, + [wmi_vdev_param_rts_fixed_rate] = WMI_VDEV_PARAM_RTS_FIXED_RATE, + [wmi_vdev_param_vht_sgimask] = WMI_VDEV_PARAM_VHT_SGIMASK, + [wmi_vdev_param_vht80_ratemask] = WMI_VDEV_PARAM_VHT80_RATEMASK, + [wmi_vdev_param_early_rx_adjust_enable] = + WMI_VDEV_PARAM_EARLY_RX_ADJUST_ENABLE, + [wmi_vdev_param_early_rx_tgt_bmiss_num] = + WMI_VDEV_PARAM_EARLY_RX_TGT_BMISS_NUM, + [wmi_vdev_param_early_rx_bmiss_sample_cycle] = + WMI_VDEV_PARAM_EARLY_RX_BMISS_SAMPLE_CYCLE, + [wmi_vdev_param_early_rx_slop_step] = WMI_VDEV_PARAM_EARLY_RX_SLOP_STEP, + [wmi_vdev_param_early_rx_init_slop] = WMI_VDEV_PARAM_EARLY_RX_INIT_SLOP, + [wmi_vdev_param_early_rx_adjust_pause] = + WMI_VDEV_PARAM_EARLY_RX_ADJUST_PAUSE, + [wmi_vdev_param_proxy_sta] = WMI_VDEV_PARAM_PROXY_STA, + [wmi_vdev_param_meru_vc] = WMI_VDEV_PARAM_MERU_VC, + [wmi_vdev_param_rx_decap_type] = WMI_VDEV_PARAM_RX_DECAP_TYPE, + [wmi_vdev_param_bw_nss_ratemask] = WMI_VDEV_PARAM_BW_NSS_RATEMASK, + [wmi_vdev_param_sensor_ap] = WMI_VDEV_PARAM_SENSOR_AP, + [wmi_vdev_param_beacon_rate] = WMI_VDEV_PARAM_BEACON_RATE, + [wmi_vdev_param_dtim_enable_cts] = WMI_VDEV_PARAM_DTIM_ENABLE_CTS, + [wmi_vdev_param_sta_kickout] = WMI_VDEV_PARAM_STA_KICKOUT, + [wmi_vdev_param_capabilities] = WMI_VDEV_PARAM_CAPABILITIES, + [wmi_vdev_param_mgmt_tx_power] = WMI_VDEV_PARAM_MGMT_TX_POWER, + [wmi_vdev_param_tx_power] = WMI_VDEV_PARAM_TX_POWER, + [wmi_vdev_param_atf_ssid_sched_policy] = + WMI_VDEV_PARAM_ATF_SSID_SCHED_POLICY, + [wmi_vdev_param_disable_dyn_bw_rts] = WMI_VDEV_PARAM_DISABLE_DYN_BW_RTS, + [wmi_vdev_param_ampdu_subframe_size_per_ac] = + WMI_VDEV_PARAM_AMPDU_SUBFRAME_SIZE_PER_AC, + [wmi_vdev_param_disable_cabq] = WMI_VDEV_PARAM_DISABLE_CABQ, + [wmi_vdev_param_amsdu_subframe_size_per_ac] = + WMI_VDEV_PARAM_AMSDU_SUBFRAME_SIZE_PER_AC, + [wmi_vdev_param_sifs_trigger_rate] = WMI_VDEV_PARAM_SIFS_TRIGGER_RATE, +}; +#endif + /** * send_vdev_create_cmd_non_tlv() - send VDEV create command to fw * @wmi_handle: wmi handle @@ -610,61 +911,28 @@ static QDF_STATUS send_peer_delete_cmd_non_tlv(wmi_unified_t wmi_handle, } /** - * convert_host_peer_id_to_target_id_non_tlv - convert host peer param_id + * convert_host_peer_param_id_to_target_id_non_tlv - convert host peer param_id * to target id. - * @targ_paramid: Target parameter id to hold the result. * @peer_param_id: host param id. * - * Return: QDF_STATUS_SUCCESS for success - * QDF_STATUS_E_NOSUPPORT when the param_id in not supported in tareget + * Return: Target Param id */ -static QDF_STATUS convert_host_peer_id_to_target_id_non_tlv( - uint32_t *targ_paramid, +#ifdef ENABLE_HOST_TO_TARGET_CONVERSION +static inline uint32_t convert_host_peer_param_id_to_target_id_non_tlv( uint32_t peer_param_id) { - switch (peer_param_id) { - case WMI_HOST_PEER_MIMO_PS_STATE: - *targ_paramid = WMI_PEER_MIMO_PS_STATE; - break; - case WMI_HOST_PEER_AMPDU: - *targ_paramid = WMI_PEER_AMPDU; - break; - case WMI_HOST_PEER_AUTHORIZE: - *targ_paramid = WMI_PEER_AUTHORIZE; - break; - case WMI_HOST_PEER_CHWIDTH: - *targ_paramid = WMI_PEER_CHWIDTH; - break; - case WMI_HOST_PEER_NSS: - *targ_paramid = WMI_PEER_NSS; - break; - case WMI_HOST_PEER_USE_4ADDR: - *targ_paramid = WMI_PEER_USE_4ADDR; - break; - case WMI_HOST_PEER_USE_FIXED_PWR: - *targ_paramid = WMI_PEER_USE_FIXED_PWR; - break; - case WMI_HOST_PEER_PARAM_FIXED_RATE: - *targ_paramid = WMI_PEER_PARAM_FIXED_RATE; - break; - case WMI_HOST_PEER_SET_MU_WHITELIST: - *targ_paramid = WMI_PEER_SET_MU_WHITELIST; - break; - case WMI_HOST_PEER_EXT_STATS_ENABLE: - *targ_paramid = WMI_PEER_EXT_STATS_ENABLE; - break; - case WMI_HOST_PEER_NSS_VHT160: - *targ_paramid = WMI_PEER_NSS_VHT160; - break; - case WMI_HOST_PEER_NSS_VHT80_80: - *targ_paramid = WMI_PEER_NSS_VHT80_80; - break; - default: - return QDF_STATUS_E_NOSUPPORT; - } - - return QDF_STATUS_SUCCESS; + if (peer_param_id < QDF_ARRAY_SIZE(peer_param_non_tlv)) + return peer_param_non_tlv[peer_param_id]; + return WMI_UNAVAILABLE_PARAM; } +#else +static inline uint32_t convert_host_peer_param_id_to_target_id_non_tlv( + uint32_t peer_param_id) +{ + return peer_param_id; +} +#endif + /** * send_peer_param_cmd_non_tlv() - set peer parameter in fw * @wmi_handle: wmi handle @@ -683,10 +951,11 @@ static QDF_STATUS send_peer_param_cmd_non_tlv(wmi_unified_t wmi_handle, int len = sizeof(wmi_peer_set_param_cmd); uint32_t param_id; - if (convert_host_peer_id_to_target_id_non_tlv(¶m_id, - param->param_id) != QDF_STATUS_SUCCESS) + param_id = convert_host_peer_param_id_to_target_id_non_tlv(param->param_id); + if (param_id == WMI_UNAVAILABLE_PARAM) { + WMI_LOGW("%s: Unavailable param %d", __func__, param->param_id); return QDF_STATUS_E_NOSUPPORT; - + } buf = wmi_buf_alloc(wmi_handle, len); if (!buf) { WMI_LOGE("%s: wmi_buf_alloc failed", __func__); @@ -1209,6 +1478,27 @@ send_pdev_qvit_cmd_non_tlv(wmi_unified_t wmi_handle, return ret; } +/** + * convert_host_pdev_param_non_tlv - convert host pdev param_id + * to target id. + * @host_param: host param id to be converted to target param id + * + * Return: Target param id value. + */ +#ifdef ENABLE_HOST_TO_TARGET_CONVERSION +static inline uint32_t convert_host_pdev_param_non_tlv(uint32_t host_param) +{ + if (host_param < QDF_ARRAY_SIZE(pdev_param_non_tlv)) + return pdev_param_non_tlv[host_param]; + return WMI_UNAVAILABLE_PARAM; +} +#else +static inline uint32_t convert_host_pdev_param_non_tlv(uint32_t host_param) +{ + return host_param; +} +#endif + /** * send_pdev_param_cmd_non_tlv() - set pdev parameters * @wmi_handle: wmi handle @@ -1223,21 +1513,20 @@ send_pdev_param_cmd_non_tlv(wmi_unified_t wmi_handle, { wmi_pdev_set_param_cmd *cmd; wmi_buf_t buf; + uint32_t targ_paramid; QDF_STATUS ret; int len = sizeof(wmi_pdev_set_param_cmd); - if ((param->param_id < wmi_pdev_param_max) && - wmi_handle->soc->pdev_param && - (wmi_handle->soc->pdev_param[param->param_id] - != WMI_UNAVAILABLE_PARAM)) { + targ_paramid = convert_host_pdev_param_non_tlv(param->param_id); + if (targ_paramid != WMI_UNAVAILABLE_PARAM) { buf = wmi_buf_alloc(wmi_handle, len); if (!buf) { WMI_LOGE("%s:wmi_buf_alloc failed", __func__); return QDF_STATUS_E_FAILURE; } cmd = (wmi_pdev_set_param_cmd *)wmi_buf_data(buf); - cmd->param_id = wmi_handle->soc->pdev_param[param->param_id]; + cmd->param_id = targ_paramid; cmd->param_value = param->param_value; ret = wmi_unified_cmd_send(wmi_handle, buf, len, WMI_PDEV_SET_PARAM_CMDID); @@ -1676,6 +1965,26 @@ send_dbglog_cmd_non_tlv(wmi_unified_t wmi_handle, return status; } +/** + * convert_host_vdev_param_non_tlv - Convert host param to target param + * @host_param: host param which is to be converted target param. + * + *Return: Target param id value. + */ +#ifdef ENABLE_HOST_TO_TARGET_CONVERSION +static inline uint32_t convert_host_vdev_param_non_tlv(uint32_t host_param) +{ + if (host_param < QDF_ARRAY_SIZE(vdev_param_non_tlv)) + return vdev_param_non_tlv[host_param]; + return WMI_UNAVAILABLE_PARAM; +} +#else +static inline uint32_t convert_host_vdev_param_non_tlv(uint32_t host_param) +{ + return host_param; +} +#endif + /** * send_vdev_set_param_cmd_non_tlv() - WMI vdev set parameter function * @@ -1688,14 +1997,13 @@ static QDF_STATUS send_vdev_set_param_cmd_non_tlv(wmi_unified_t wmi_handle, { wmi_vdev_set_param_cmd *cmd; wmi_buf_t buf; + uint32_t targ_paramid; QDF_STATUS ret; int len = sizeof(wmi_vdev_set_param_cmd); - if ((param->param_id < wmi_vdev_param_max) && - wmi_handle->soc->vdev_param && - (wmi_handle->soc->vdev_param[param->param_id] != - WMI_UNAVAILABLE_PARAM)) { + targ_paramid = convert_host_vdev_param_non_tlv(param->param_id); + if (targ_paramid != WMI_UNAVAILABLE_PARAM) { buf = wmi_buf_alloc(wmi_handle, len); if (!buf) { WMI_LOGE("%s:wmi_buf_alloc failed", __func__); @@ -1703,7 +2011,7 @@ static QDF_STATUS send_vdev_set_param_cmd_non_tlv(wmi_unified_t wmi_handle, } cmd = (wmi_vdev_set_param_cmd *)wmi_buf_data(buf); cmd->vdev_id = param->vdev_id; - cmd->param_id = wmi_handle->soc->vdev_param[param->param_id]; + cmd->param_id = targ_paramid; cmd->param_value = param->param_value; ret = wmi_unified_cmd_send(wmi_handle, buf, len, WMI_VDEV_SET_PARAM_CMDID); @@ -10181,380 +10489,6 @@ static void populate_non_tlv_events_id(uint32_t *event_ids) event_ids[wmi_pdev_ctl_failsafe_check_event_id] = WMI_PDEV_CTL_FAILSAFE_CHECK_EVENTID; } - -/** - * populate_pdev_param_non_tlv() - populates pdev params - * - * @param pdev_param: Pointer to hold pdev params - * Return: None - */ -static void populate_pdev_param_non_tlv(uint32_t *pdev_param) -{ - pdev_param[wmi_pdev_param_tx_chain_mask] = WMI_PDEV_PARAM_TX_CHAIN_MASK; - pdev_param[wmi_pdev_param_rx_chain_mask] = WMI_PDEV_PARAM_RX_CHAIN_MASK; - pdev_param[wmi_pdev_param_txpower_limit2g] = - WMI_PDEV_PARAM_TXPOWER_LIMIT2G; - pdev_param[wmi_pdev_param_txpower_limit5g] = - WMI_PDEV_PARAM_TXPOWER_LIMIT5G; - pdev_param[wmi_pdev_param_txpower_scale] = WMI_PDEV_PARAM_TXPOWER_SCALE; - pdev_param[wmi_pdev_param_beacon_gen_mode] = - WMI_PDEV_PARAM_BEACON_GEN_MODE; - pdev_param[wmi_pdev_param_beacon_tx_mode] = - WMI_PDEV_PARAM_BEACON_TX_MODE; - pdev_param[wmi_pdev_param_resmgr_offchan_mode] = - WMI_PDEV_PARAM_RESMGR_OFFCHAN_MODE; - pdev_param[wmi_pdev_param_protection_mode] = - WMI_PDEV_PARAM_PROTECTION_MODE; - pdev_param[wmi_pdev_param_dynamic_bw] = WMI_PDEV_PARAM_DYNAMIC_BW; - pdev_param[wmi_pdev_param_non_agg_sw_retry_th] = - WMI_PDEV_PARAM_NON_AGG_SW_RETRY_TH; - pdev_param[wmi_pdev_param_agg_sw_retry_th] = - WMI_PDEV_PARAM_AGG_SW_RETRY_TH; - pdev_param[wmi_pdev_param_sta_kickout_th] = - WMI_PDEV_PARAM_STA_KICKOUT_TH; - pdev_param[wmi_pdev_param_ac_aggrsize_scaling] = - WMI_PDEV_PARAM_AC_AGGRSIZE_SCALING; - pdev_param[wmi_pdev_param_ltr_enable] = WMI_PDEV_PARAM_LTR_ENABLE; - pdev_param[wmi_pdev_param_ltr_ac_latency_be] = - WMI_PDEV_PARAM_LTR_AC_LATENCY_BE; - pdev_param[wmi_pdev_param_ltr_ac_latency_bk] = - WMI_PDEV_PARAM_LTR_AC_LATENCY_BK; - pdev_param[wmi_pdev_param_ltr_ac_latency_vi] = - WMI_PDEV_PARAM_LTR_AC_LATENCY_VI; - pdev_param[wmi_pdev_param_ltr_ac_latency_vo] = - WMI_PDEV_PARAM_LTR_AC_LATENCY_VO; - pdev_param[wmi_pdev_param_ltr_ac_latency_timeout] = - WMI_PDEV_PARAM_LTR_AC_LATENCY_TIMEOUT; - pdev_param[wmi_pdev_param_ltr_sleep_override] = - WMI_PDEV_PARAM_LTR_SLEEP_OVERRIDE; - pdev_param[wmi_pdev_param_ltr_rx_override] = - WMI_PDEV_PARAM_LTR_RX_OVERRIDE; - pdev_param[wmi_pdev_param_ltr_tx_activity_timeout] = - WMI_PDEV_PARAM_LTR_TX_ACTIVITY_TIMEOUT; - pdev_param[wmi_pdev_param_l1ss_enable] = WMI_PDEV_PARAM_L1SS_ENABLE; - pdev_param[wmi_pdev_param_dsleep_enable] = WMI_PDEV_PARAM_DSLEEP_ENABLE; - pdev_param[wmi_pdev_param_pcielp_txbuf_flush] = - WMI_PDEV_PARAM_PCIELP_TXBUF_FLUSH; - pdev_param[wmi_pdev_param_pcielp_txbuf_watermark] = - WMI_PDEV_PARAM_PCIELP_TXBUF_WATERMARK; - pdev_param[wmi_pdev_param_pcielp_txbuf_tmo_en] = - WMI_PDEV_PARAM_PCIELP_TXBUF_TMO_EN; - pdev_param[wmi_pdev_param_pcielp_txbuf_tmo_value] = - WMI_PDEV_PARAM_PCIELP_TXBUF_TMO_VALUE; - pdev_param[wmi_pdev_param_pdev_stats_update_period] = - WMI_PDEV_PARAM_PDEV_STATS_UPDATE_PERIOD; - pdev_param[wmi_pdev_param_vdev_stats_update_period] = - WMI_PDEV_PARAM_VDEV_STATS_UPDATE_PERIOD; - pdev_param[wmi_pdev_param_peer_stats_update_period] = - WMI_PDEV_PARAM_PEER_STATS_UPDATE_PERIOD; - pdev_param[wmi_pdev_param_bcnflt_stats_update_period] = - WMI_PDEV_PARAM_BCNFLT_STATS_UPDATE_PERIOD; - pdev_param[wmi_pdev_param_pmf_qos] = - WMI_PDEV_PARAM_PMF_QOS; - pdev_param[wmi_pdev_param_arp_ac_override] = - WMI_PDEV_PARAM_ARP_AC_OVERRIDE; - pdev_param[wmi_pdev_param_dcs] = - WMI_PDEV_PARAM_DCS; - pdev_param[wmi_pdev_param_ani_enable] = WMI_PDEV_PARAM_ANI_ENABLE; - pdev_param[wmi_pdev_param_ani_poll_period] = - WMI_PDEV_PARAM_ANI_POLL_PERIOD; - pdev_param[wmi_pdev_param_ani_listen_period] = - WMI_PDEV_PARAM_ANI_LISTEN_PERIOD; - pdev_param[wmi_pdev_param_ani_ofdm_level] = - WMI_PDEV_PARAM_ANI_OFDM_LEVEL; - pdev_param[wmi_pdev_param_ani_cck_level] = WMI_PDEV_PARAM_ANI_CCK_LEVEL; - pdev_param[wmi_pdev_param_dyntxchain] = WMI_PDEV_PARAM_DYNTXCHAIN; - pdev_param[wmi_pdev_param_proxy_sta] = WMI_PDEV_PARAM_PROXY_STA; - pdev_param[wmi_pdev_param_idle_ps_config] = - WMI_PDEV_PARAM_IDLE_PS_CONFIG; - pdev_param[wmi_pdev_param_power_gating_sleep] = - WMI_PDEV_PARAM_POWER_GATING_SLEEP; - pdev_param[wmi_pdev_param_aggr_burst] = WMI_PDEV_PARAM_AGGR_BURST; - pdev_param[wmi_pdev_param_rx_decap_mode] = WMI_PDEV_PARAM_RX_DECAP_MODE; - pdev_param[wmi_pdev_param_fast_channel_reset] = - WMI_PDEV_PARAM_FAST_CHANNEL_RESET; - pdev_param[wmi_pdev_param_burst_dur] = WMI_PDEV_PARAM_BURST_DUR; - pdev_param[wmi_pdev_param_burst_enable] = WMI_PDEV_PARAM_BURST_ENABLE; - pdev_param[wmi_pdev_param_smart_antenna_default_antenna] = - WMI_PDEV_PARAM_SMART_ANTENNA_DEFAULT_ANTENNA; - pdev_param[wmi_pdev_param_igmpmld_override] = - WMI_PDEV_PARAM_IGMPMLD_OVERRIDE; - pdev_param[wmi_pdev_param_igmpmld_tid] = - WMI_PDEV_PARAM_IGMPMLD_TID; - pdev_param[wmi_pdev_param_antenna_gain] = WMI_PDEV_PARAM_ANTENNA_GAIN; - pdev_param[wmi_pdev_param_rx_filter] = WMI_PDEV_PARAM_RX_FILTER; - pdev_param[wmi_pdev_set_mcast_to_ucast_tid] = - WMI_PDEV_SET_MCAST_TO_UCAST_TID; - pdev_param[wmi_pdev_param_proxy_sta_mode] = - WMI_PDEV_PARAM_PROXY_STA_MODE; - pdev_param[wmi_pdev_param_set_mcast2ucast_mode] = - WMI_PDEV_PARAM_SET_MCAST2UCAST_MODE; - pdev_param[wmi_pdev_param_set_mcast2ucast_buffer] = - WMI_PDEV_PARAM_SET_MCAST2UCAST_BUFFER; - pdev_param[wmi_pdev_param_remove_mcast2ucast_buffer] = - WMI_PDEV_PARAM_REMOVE_MCAST2UCAST_BUFFER; - pdev_param[wmi_pdev_peer_sta_ps_statechg_enable] = - WMI_PDEV_PEER_STA_PS_STATECHG_ENABLE; - pdev_param[wmi_pdev_param_block_interbss] = - WMI_PDEV_PARAM_BLOCK_INTERBSS; - pdev_param[wmi_pdev_param_set_disable_reset_cmdid] = - WMI_PDEV_PARAM_SET_DISABLE_RESET_CMDID; - pdev_param[wmi_pdev_param_set_msdu_ttl_cmdid] = - WMI_PDEV_PARAM_SET_MSDU_TTL_CMDID; - pdev_param[wmi_pdev_param_set_ppdu_duration_cmdid] = - WMI_PDEV_PARAM_SET_PPDU_DURATION_CMDID; - pdev_param[wmi_pdev_param_txbf_sound_period_cmdid] = - WMI_PDEV_PARAM_TXBF_SOUND_PERIOD_CMDID; - pdev_param[wmi_pdev_param_set_promisc_mode_cmdid] = - WMI_PDEV_PARAM_SET_PROMISC_MODE_CMDID; - pdev_param[wmi_pdev_param_set_burst_mode_cmdid] = - WMI_PDEV_PARAM_SET_BURST_MODE_CMDID; - pdev_param[wmi_pdev_param_en_stats] = WMI_PDEV_PARAM_EN_STATS; - pdev_param[wmi_pdev_param_mu_group_policy] = - WMI_PDEV_PARAM_MU_GROUP_POLICY; - pdev_param[wmi_pdev_param_noise_detection] = - WMI_PDEV_PARAM_NOISE_DETECTION; - pdev_param[wmi_pdev_param_noise_threshold] = - WMI_PDEV_PARAM_NOISE_THRESHOLD; - pdev_param[wmi_pdev_param_dpd_enable] = - WMI_PDEV_PARAM_DPD_ENABLE; - pdev_param[wmi_pdev_param_set_mcast_bcast_echo] = - WMI_PDEV_PARAM_SET_MCAST_BCAST_ECHO; - pdev_param[wmi_pdev_param_atf_strict_sch] = - WMI_PDEV_PARAM_ATF_STRICT_SCH; - pdev_param[wmi_pdev_param_atf_sched_duration] = - WMI_PDEV_PARAM_ATF_SCHED_DURATION; - pdev_param[wmi_pdev_param_ant_plzn] = WMI_PDEV_PARAM_ANT_PLZN; - pdev_param[wmi_pdev_param_mgmt_retry_limit] = - WMI_PDEV_PARAM_MGMT_RETRY_LIMIT; - pdev_param[wmi_pdev_param_sensitivity_level] = - WMI_PDEV_PARAM_SENSITIVITY_LEVEL; - pdev_param[wmi_pdev_param_signed_txpower_2g] = - WMI_PDEV_PARAM_SIGNED_TXPOWER_2G; - pdev_param[wmi_pdev_param_signed_txpower_5g] = - WMI_PDEV_PARAM_SIGNED_TXPOWER_5G; - pdev_param[wmi_pdev_param_enable_per_tid_amsdu] = - WMI_PDEV_PARAM_ENABLE_PER_TID_AMSDU; - pdev_param[wmi_pdev_param_enable_per_tid_ampdu] = - WMI_PDEV_PARAM_ENABLE_PER_TID_AMPDU; - pdev_param[wmi_pdev_param_cca_threshold] = WMI_PDEV_PARAM_CCA_THRESHOLD; - pdev_param[wmi_pdev_param_rts_fixed_rate] = - WMI_PDEV_PARAM_RTS_FIXED_RATE; - pdev_param[wmi_pdev_param_cal_period] = WMI_PDEV_PARAM_CAL_PERIOD; - pdev_param[wmi_pdev_param_pdev_reset] = WMI_PDEV_PARAM_PDEV_RESET; - pdev_param[wmi_pdev_param_wapi_mbssid_offset] = - WMI_PDEV_PARAM_WAPI_MBSSID_OFFSET; - pdev_param[wmi_pdev_param_arp_srcaddr] = WMI_PDEV_PARAM_ARP_SRCADDR; - pdev_param[wmi_pdev_param_arp_dstaddr] = WMI_PDEV_PARAM_ARP_DSTADDR; - pdev_param[wmi_pdev_param_txpower_decr_db] = - WMI_PDEV_PARAM_TXPOWER_DECR_DB; - pdev_param[wmi_pdev_param_rx_batchmode] = WMI_PDEV_PARAM_RX_BATCHMODE; - pdev_param[wmi_pdev_param_packet_aggr_delay] = - WMI_PDEV_PARAM_PACKET_AGGR_DELAY; - pdev_param[wmi_pdev_param_atf_obss_noise_sch] = - WMI_PDEV_PARAM_ATF_OBSS_NOISE_SCH; - pdev_param[wmi_pdev_param_atf_obss_noise_scaling_factor] = - WMI_PDEV_PARAM_ATF_OBSS_NOISE_SCALING_FACTOR; - pdev_param[wmi_pdev_param_cust_txpower_scale] = - WMI_PDEV_PARAM_CUST_TXPOWER_SCALE; - pdev_param[wmi_pdev_param_atf_dynamic_enable] = - WMI_PDEV_PARAM_ATF_DYNAMIC_ENABLE; - pdev_param[wmi_pdev_param_atf_ssid_group_policy] = - WMI_PDEV_PARAM_ATF_SSID_GROUP_POLICY; - pdev_param[wmi_pdev_param_enable_btcoex] = - WMI_PDEV_PARAM_ENABLE_BTCOEX; - pdev_param[wmi_pdev_param_atf_peer_stats] = - WMI_PDEV_PARAM_ATF_PEER_STATS; - pdev_param[wmi_pdev_param_tx_ack_timeout] = WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_soft_tx_chain_mask] = - WMI_PDEV_PARAM_SOFT_TX_CHAIN_MASK; - pdev_param[wmi_pdev_param_esp_indication_period] = - WMI_PDEV_PARAM_ESP_INDICATION_PERIOD; - pdev_param[wmi_pdev_param_esp_ba_window] = WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_esp_airtime_fraction] = WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_esp_ppdu_duration] = WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_rfkill_enable] = WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_hw_rfkill_config] = WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_low_power_rf_enable] = WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_l1ss_track] = WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_hyst_en] = WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_power_collapse_enable] = - WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_led_sys_state] = WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_led_enable] = WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_audio_over_wlan_latency] = - WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_audio_over_wlan_enable] = - WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_whal_mib_stats_update_enable] = - WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_vdev_rate_stats_update_period] = - WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_cts_cbw] = WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_wnts_config] = WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_adaptive_early_rx_enable] = - WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_adaptive_early_rx_min_sleep_slop] = - WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_adaptive_early_rx_inc_dec_step] = - WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_early_rx_fix_sleep_slop] = - WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_bmiss_based_adaptive_bto_enable] = - WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_bmiss_bto_min_bcn_timeout] = - WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_bmiss_bto_inc_dec_step] = - WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_bto_fix_bcn_timeout] = - WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_ce_based_adaptive_bto_enable] = - WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_ce_bto_combo_ce_value] = - WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_tx_chain_mask_2g] = WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_rx_chain_mask_2g] = WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_tx_chain_mask_5g] = WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_rx_chain_mask_5g] = WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_tx_chain_mask_cck] = WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_tx_chain_mask_1ss] = WMI_UNAVAILABLE_PARAM; - pdev_param[wmi_pdev_param_antenna_gain_half_db] = - WMI_PDEV_PARAM_ANTENNA_GAIN_HALF_DB; - pdev_param[wmi_pdev_param_enable_peer_retry_stats] = - WMI_PDEV_PARAM_ENABLE_PEER_RETRY_STATS; - pdev_param[wmi_pdev_param_per_peer_prd_cfr_enable] = - WMI_PDEV_PARAM_PER_PEER_PERIODIC_CFR_ENABLE; -} - -/** - * populate_vdev_param_non_tlv() - populates vdev params - * - * @param vdev_param: Pointer to hold vdev params - * Return: None - */ -static void populate_vdev_param_non_tlv(uint32_t *vdev_param) -{ - vdev_param[wmi_vdev_param_rts_threshold] = WMI_VDEV_PARAM_RTS_THRESHOLD; - vdev_param[wmi_vdev_param_fragmentation_threshold] = - WMI_VDEV_PARAM_FRAGMENTATION_THRESHOLD; - vdev_param[wmi_vdev_param_beacon_interval] = - WMI_VDEV_PARAM_BEACON_INTERVAL; - vdev_param[wmi_vdev_param_listen_interval] = - WMI_VDEV_PARAM_LISTEN_INTERVAL; - vdev_param[wmi_vdev_param_multicast_rate] = - WMI_VDEV_PARAM_MULTICAST_RATE; - vdev_param[wmi_vdev_param_mgmt_tx_rate] = - WMI_VDEV_PARAM_MGMT_TX_RATE; - vdev_param[wmi_vdev_param_slot_time] = WMI_VDEV_PARAM_SLOT_TIME; - vdev_param[wmi_vdev_param_preamble] = WMI_VDEV_PARAM_PREAMBLE; - vdev_param[wmi_vdev_param_swba_time] = WMI_VDEV_PARAM_SWBA_TIME; - vdev_param[wmi_vdev_stats_update_period] = WMI_VDEV_STATS_UPDATE_PERIOD; - vdev_param[wmi_vdev_pwrsave_ageout_time] = WMI_VDEV_PWRSAVE_AGEOUT_TIME; - vdev_param[wmi_vdev_host_swba_interval] = WMI_VDEV_HOST_SWBA_INTERVAL; - vdev_param[wmi_vdev_param_dtim_period] = WMI_VDEV_PARAM_DTIM_PERIOD; - vdev_param[wmi_vdev_oc_scheduler_air_time_limit] = - WMI_VDEV_OC_SCHEDULER_AIR_TIME_LIMIT; - vdev_param[wmi_vdev_param_wds] = WMI_VDEV_PARAM_WDS; - vdev_param[wmi_vdev_param_atim_window] = WMI_VDEV_PARAM_ATIM_WINDOW; - vdev_param[wmi_vdev_param_bmiss_count_max] = - WMI_VDEV_PARAM_BMISS_COUNT_MAX; - vdev_param[wmi_vdev_param_bmiss_first_bcnt] = - WMI_VDEV_PARAM_BMISS_FIRST_BCNT; - vdev_param[wmi_vdev_param_bmiss_final_bcnt] = - WMI_VDEV_PARAM_BMISS_FINAL_BCNT; - vdev_param[wmi_vdev_param_feature_wmm] = WMI_VDEV_PARAM_FEATURE_WMM; - vdev_param[wmi_vdev_param_chwidth] = WMI_VDEV_PARAM_CHWIDTH; - vdev_param[wmi_vdev_param_chextoffset] = WMI_VDEV_PARAM_CHEXTOFFSET; - vdev_param[wmi_vdev_param_disable_htprotection] = - WMI_VDEV_PARAM_DISABLE_HTPROTECTION; - vdev_param[wmi_vdev_param_sta_quickkickout] = - WMI_VDEV_PARAM_STA_QUICKKICKOUT; - vdev_param[wmi_vdev_param_mgmt_rate] = WMI_VDEV_PARAM_MGMT_RATE; - vdev_param[wmi_vdev_param_protection_mode] = - WMI_VDEV_PARAM_PROTECTION_MODE; - vdev_param[wmi_vdev_param_fixed_rate] = WMI_VDEV_PARAM_FIXED_RATE; - vdev_param[wmi_vdev_param_sgi] = WMI_VDEV_PARAM_SGI; - vdev_param[wmi_vdev_param_ldpc] = WMI_VDEV_PARAM_LDPC; - vdev_param[wmi_vdev_param_tx_stbc] = WMI_VDEV_PARAM_TX_STBC; - vdev_param[wmi_vdev_param_rx_stbc] = WMI_VDEV_PARAM_RX_STBC; - vdev_param[wmi_vdev_param_intra_bss_fwd] = WMI_VDEV_PARAM_INTRA_BSS_FWD; - vdev_param[wmi_vdev_param_def_keyid] = WMI_VDEV_PARAM_DEF_KEYID; - vdev_param[wmi_vdev_param_nss] = WMI_VDEV_PARAM_NSS; - vdev_param[wmi_vdev_param_bcast_data_rate] = - WMI_VDEV_PARAM_BCAST_DATA_RATE; - vdev_param[wmi_vdev_param_mcast_data_rate] = - WMI_VDEV_PARAM_MCAST_DATA_RATE; - vdev_param[wmi_vdev_param_mcast_indicate] = - WMI_VDEV_PARAM_MCAST_INDICATE; - vdev_param[wmi_vdev_param_dhcp_indicate] = WMI_VDEV_PARAM_DHCP_INDICATE; - vdev_param[wmi_vdev_param_unknown_dest_indicate] = - WMI_VDEV_PARAM_UNKNOWN_DEST_INDICATE; - vdev_param[wmi_vdev_param_ap_keepalive_min_idle_inactive_time_secs] = - WMI_VDEV_PARAM_AP_KEEPALIVE_MIN_IDLE_INACTIVE_TIME_SECS; - vdev_param[wmi_vdev_param_ap_keepalive_max_idle_inactive_time_secs] = - WMI_VDEV_PARAM_AP_KEEPALIVE_MAX_IDLE_INACTIVE_TIME_SECS; - vdev_param[wmi_vdev_param_ap_keepalive_max_unresponsive_time_secs] = - WMI_VDEV_PARAM_AP_KEEPALIVE_MAX_UNRESPONSIVE_TIME_SECS; - vdev_param[wmi_vdev_param_ap_enable_nawds] = - WMI_VDEV_PARAM_AP_ENABLE_NAWDS; - vdev_param[wmi_vdev_param_mcast2ucast_set] = - WMI_VDEV_PARAM_MCAST2UCAST_SET; - vdev_param[wmi_vdev_param_enable_rtscts] = WMI_VDEV_PARAM_ENABLE_RTSCTS; - vdev_param[wmi_vdev_param_rc_num_retries] = - WMI_VDEV_PARAM_RC_NUM_RETRIES; - vdev_param[wmi_vdev_param_txbf] = WMI_VDEV_PARAM_TXBF; - vdev_param[wmi_vdev_param_packet_powersave] = - WMI_VDEV_PARAM_PACKET_POWERSAVE; - vdev_param[wmi_vdev_param_drop_unencry] = WMI_VDEV_PARAM_DROP_UNENCRY; - vdev_param[wmi_vdev_param_tx_encap_type] = WMI_VDEV_PARAM_TX_ENCAP_TYPE; - vdev_param[wmi_vdev_param_ap_detect_out_of_sync_sleeping_sta_time_secs] - = WMI_VDEV_PARAM_AP_DETECT_OUT_OF_SYNC_SLEEPING_STA_TIME_SECS; - vdev_param[wmi_vdev_param_cabq_maxdur] = WMI_VDEV_PARAM_CABQ_MAXDUR; - vdev_param[wmi_vdev_param_mfptest_set] = WMI_VDEV_PARAM_MFPTEST_SET; - vdev_param[wmi_vdev_param_rts_fixed_rate] = - WMI_VDEV_PARAM_RTS_FIXED_RATE; - vdev_param[wmi_vdev_param_vht_sgimask] = WMI_VDEV_PARAM_VHT_SGIMASK; - vdev_param[wmi_vdev_param_vht80_ratemask] = - WMI_VDEV_PARAM_VHT80_RATEMASK; - vdev_param[wmi_vdev_param_early_rx_adjust_enable] = - WMI_VDEV_PARAM_EARLY_RX_ADJUST_ENABLE; - vdev_param[wmi_vdev_param_early_rx_tgt_bmiss_num] = - WMI_VDEV_PARAM_EARLY_RX_TGT_BMISS_NUM; - vdev_param[wmi_vdev_param_early_rx_bmiss_sample_cycle] = - WMI_VDEV_PARAM_EARLY_RX_BMISS_SAMPLE_CYCLE; - vdev_param[wmi_vdev_param_early_rx_slop_step] = - WMI_VDEV_PARAM_EARLY_RX_SLOP_STEP; - vdev_param[wmi_vdev_param_early_rx_init_slop] = - WMI_VDEV_PARAM_EARLY_RX_INIT_SLOP; - vdev_param[wmi_vdev_param_early_rx_adjust_pause] = - WMI_VDEV_PARAM_EARLY_RX_ADJUST_PAUSE; - vdev_param[wmi_vdev_param_proxy_sta] = WMI_VDEV_PARAM_PROXY_STA; - vdev_param[wmi_vdev_param_meru_vc] = WMI_VDEV_PARAM_MERU_VC; - vdev_param[wmi_vdev_param_rx_decap_type] = WMI_VDEV_PARAM_RX_DECAP_TYPE; - vdev_param[wmi_vdev_param_bw_nss_ratemask] = - WMI_VDEV_PARAM_BW_NSS_RATEMASK; - vdev_param[wmi_vdev_param_sensor_ap] = WMI_VDEV_PARAM_SENSOR_AP; - vdev_param[wmi_vdev_param_beacon_rate] = WMI_VDEV_PARAM_BEACON_RATE; - vdev_param[wmi_vdev_param_dtim_enable_cts] = - WMI_VDEV_PARAM_DTIM_ENABLE_CTS; - vdev_param[wmi_vdev_param_sta_kickout] = WMI_VDEV_PARAM_STA_KICKOUT; - vdev_param[wmi_vdev_param_capabilities] = - WMI_VDEV_PARAM_CAPABILITIES; - vdev_param[wmi_vdev_param_mgmt_tx_power] = WMI_VDEV_PARAM_MGMT_TX_POWER; - vdev_param[wmi_vdev_param_tx_power] = WMI_VDEV_PARAM_TX_POWER; - vdev_param[wmi_vdev_param_atf_ssid_sched_policy] = - WMI_VDEV_PARAM_ATF_SSID_SCHED_POLICY; - vdev_param[wmi_vdev_param_disable_dyn_bw_rts] = - WMI_VDEV_PARAM_DISABLE_DYN_BW_RTS; - vdev_param[wmi_vdev_param_ampdu_subframe_size_per_ac] = - WMI_VDEV_PARAM_AMPDU_SUBFRAME_SIZE_PER_AC; - vdev_param[wmi_vdev_param_disable_cabq] = - WMI_VDEV_PARAM_DISABLE_CABQ; - vdev_param[wmi_vdev_param_amsdu_subframe_size_per_ac] = - WMI_VDEV_PARAM_AMSDU_SUBFRAME_SIZE_PER_AC; - vdev_param[wmi_vdev_param_sifs_trigger_rate] = - WMI_VDEV_PARAM_SIFS_TRIGGER_RATE; -} #endif /** @@ -10569,10 +10503,6 @@ void wmi_non_tlv_attach(struct wmi_unified *wmi_handle) wmi_handle->soc->svc_ids = &svc_ids[0]; populate_non_tlv_service(wmi_handle->services); populate_non_tlv_events_id(wmi_handle->wmi_events); - if (wmi_handle->soc->pdev_param) - populate_pdev_param_non_tlv(wmi_handle->soc->pdev_param); - if (wmi_handle->soc->vdev_param) - populate_vdev_param_non_tlv(wmi_handle->soc->vdev_param); #ifdef WMI_INTERFACE_EVENT_LOGGING wmi_handle->soc->buf_offset_command = 0;