1*5113495bSYour Name /* 2*5113495bSYour Name * Copyright (c) 2016-2020 The Linux Foundation. All rights reserved. 3*5113495bSYour Name * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. 4*5113495bSYour Name * 5*5113495bSYour Name * Permission to use, copy, modify, and/or distribute this software for 6*5113495bSYour Name * any purpose with or without fee is hereby granted, provided that the 7*5113495bSYour Name * above copyright notice and this permission notice appear in all 8*5113495bSYour Name * copies. 9*5113495bSYour Name * 10*5113495bSYour Name * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 11*5113495bSYour Name * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 12*5113495bSYour Name * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 13*5113495bSYour Name * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14*5113495bSYour Name * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 15*5113495bSYour Name * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 16*5113495bSYour Name * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 17*5113495bSYour Name * PERFORMANCE OF THIS SOFTWARE. 18*5113495bSYour Name */ 19*5113495bSYour Name 20*5113495bSYour Name /** 21*5113495bSYour Name * DOC: cds_config.h 22*5113495bSYour Name * 23*5113495bSYour Name * Defines the configuration Information for various modules. Default values 24*5113495bSYour Name * are read from the INI file and saved into cds_config_info which are passed 25*5113495bSYour Name * to various modules for the initialization. 26*5113495bSYour Name */ 27*5113495bSYour Name 28*5113495bSYour Name #if !defined(__CDS_CONFIG_H) 29*5113495bSYour Name #define __CDS_CONFIG_H 30*5113495bSYour Name 31*5113495bSYour Name #include "osdep.h" 32*5113495bSYour Name #include "cdp_txrx_mob_def.h" 33*5113495bSYour Name #include "wlan_cmn.h" 34*5113495bSYour Name #include "wlan_cmn_ieee80211.h" 35*5113495bSYour Name #include "wlan_pmo_common_public_struct.h" 36*5113495bSYour Name #include "qca_vendor.h" 37*5113495bSYour Name #include "wmi_unified_param.h" 38*5113495bSYour Name 39*5113495bSYour Name /** 40*5113495bSYour Name * enum cfg_sub_20_channel_width: ini values for su 20 MHz channel width 41*5113495bSYour Name * @WLAN_SUB_20_CH_WIDTH_NONE: No sub-20 MHz channel width 42*5113495bSYour Name * @WLAN_SUB_20_CH_WIDTH_5: Use 5 MHz channel width 43*5113495bSYour Name * @WLAN_SUB_20_CH_WIDTH_10: Use 10 MHz channel width 44*5113495bSYour Name */ 45*5113495bSYour Name enum cfg_sub_20_channel_width { 46*5113495bSYour Name WLAN_SUB_20_CH_WIDTH_NONE = 0, 47*5113495bSYour Name WLAN_SUB_20_CH_WIDTH_5 = 1, 48*5113495bSYour Name WLAN_SUB_20_CH_WIDTH_10 = 2, 49*5113495bSYour Name }; 50*5113495bSYour Name 51*5113495bSYour Name #ifdef FEATURE_SET 52*5113495bSYour Name /** 53*5113495bSYour Name * struct wlan_cds_feature_set - CDS feature set struct 54*5113495bSYour Name * @wifi_standard: Supported wifi standard 55*5113495bSYour Name * @sap_5g_supported: 5GHz SAP supported or not 56*5113495bSYour Name * @sap_6g_supported: 6GHz SAP supported or no 57*5113495bSYour Name * @band_capability: Supported band capability bitmap; 58*5113495bSYour Name */ 59*5113495bSYour Name struct wlan_cds_feature_set { 60*5113495bSYour Name WMI_HOST_WIFI_STANDARD wifi_standard; 61*5113495bSYour Name bool sap_5g_supported; 62*5113495bSYour Name bool sap_6g_supported; 63*5113495bSYour Name uint32_t band_capability; 64*5113495bSYour Name }; 65*5113495bSYour Name #endif 66*5113495bSYour Name 67*5113495bSYour Name /** 68*5113495bSYour Name * struct cds_config_info - Place Holder for cds configuration 69*5113495bSYour Name * @max_station: Max station supported 70*5113495bSYour Name * @max_bssid: Max Bssid Supported 71*5113495bSYour Name * @sta_maxlimod_dtim: station max listen interval 72*5113495bSYour Name * @sta_maxlimod_dtim_ms: station max listen interval ms 73*5113495bSYour Name * @driver_type: Enumeration of Driver Type whether FTM or Mission mode 74*5113495bSYour Name * currently rest of bits are not used 75*5113495bSYour Name * Indicates whether support is enabled or not 76*5113495bSYour Name * @ap_disable_intrabss_fwd: pass intra-bss-fwd info to txrx module 77*5113495bSYour Name * @ap_maxoffload_peers: max offload peer 78*5113495bSYour Name * @ap_maxoffload_reorderbuffs: max offload reorder buffs 79*5113495bSYour Name * @is_ra_ratelimit_enabled: Indicate RA rate limit enabled or not 80*5113495bSYour Name * @reorder_offload: is RX re-ordering offloaded to the fw 81*5113495bSYour Name * @dfs_pri_multiplier: dfs radar pri multiplier 82*5113495bSYour Name * @uc_offload_enabled: IPA Micro controller data path offload enable flag 83*5113495bSYour Name * @enable_rxthread: Rx processing in thread from TXRX 84*5113495bSYour Name * @tx_flow_stop_queue_th: Threshold to stop queue in percentage 85*5113495bSYour Name * @tx_flow_start_queue_offset: Start queue offset in percentage 86*5113495bSYour Name * @enable_dp_rx_threads: enable dp rx threads 87*5113495bSYour Name * @is_lpass_enabled: Indicate whether LPASS is enabled or not 88*5113495bSYour Name * @tx_chain_mask_cck: Tx chain mask enabled or not 89*5113495bSYour Name * @sub_20_channel_width: Sub 20 MHz ch width, ini intersected with fw cap 90*5113495bSYour Name * @max_msdus_per_rxinorderind: 91*5113495bSYour Name * @self_recovery_enabled: 92*5113495bSYour Name * @fw_timeout_crash: Indicate whether crash host when fw timesout or not 93*5113495bSYour Name * @ac_specs: 94*5113495bSYour Name * @ito_repeat_count: Indicates ito repeated count 95*5113495bSYour Name * @force_target_assert_enabled: Indicate whether target assert enabled or not 96*5113495bSYour Name * @bandcapability: Configured band by user 97*5113495bSYour Name * @rps_enabled: RPS enabled in SAP mode 98*5113495bSYour Name * Structure for holding cds ini parameters. 99*5113495bSYour Name * @num_vdevs: Configured max number of VDEVs can be supported in the stack. 100*5113495bSYour Name * @enable_tx_compl_tsf64: 101*5113495bSYour Name * @cds_feature_set: CDS feature set structure. 102*5113495bSYour Name * @get_wifi_features: Get wifi features from fw 103*5113495bSYour Name * @exclude_selftx_from_cca_busy: Exclude selx tx time from cca busy time 104*5113495bSYour Name */ 105*5113495bSYour Name 106*5113495bSYour Name struct cds_config_info { 107*5113495bSYour Name uint16_t max_station; 108*5113495bSYour Name uint16_t max_bssid; 109*5113495bSYour Name uint8_t sta_maxlimod_dtim; 110*5113495bSYour Name uint16_t sta_maxlimod_dtim_ms; 111*5113495bSYour Name enum qdf_driver_type driver_type; 112*5113495bSYour Name uint8_t ap_maxoffload_peers; 113*5113495bSYour Name uint8_t ap_maxoffload_reorderbuffs; 114*5113495bSYour Name uint8_t reorder_offload; 115*5113495bSYour Name uint8_t uc_offload_enabled; 116*5113495bSYour Name bool enable_rxthread; 117*5113495bSYour Name #if defined(QCA_LL_TX_FLOW_CONTROL_V2) || defined(QCA_LL_PDEV_TX_FLOW_CONTROL) 118*5113495bSYour Name uint32_t tx_flow_stop_queue_th; 119*5113495bSYour Name uint32_t tx_flow_start_queue_offset; 120*5113495bSYour Name #endif 121*5113495bSYour Name uint8_t enable_dp_rx_threads; 122*5113495bSYour Name #ifdef WLAN_FEATURE_LPSS 123*5113495bSYour Name bool is_lpass_enabled; 124*5113495bSYour Name #endif 125*5113495bSYour Name enum cfg_sub_20_channel_width sub_20_channel_width; 126*5113495bSYour Name uint8_t max_msdus_per_rxinorderind; 127*5113495bSYour Name bool self_recovery_enabled; 128*5113495bSYour Name bool fw_timeout_crash; 129*5113495bSYour Name struct ol_tx_sched_wrr_ac_specs_t ac_specs[QCA_WLAN_AC_ALL]; 130*5113495bSYour Name uint8_t ito_repeat_count; 131*5113495bSYour Name bool force_target_assert_enabled; 132*5113495bSYour Name uint8_t bandcapability; 133*5113495bSYour Name bool rps_enabled; 134*5113495bSYour Name uint32_t num_vdevs; 135*5113495bSYour Name bool enable_tx_compl_tsf64; 136*5113495bSYour Name #ifdef FEATURE_SET 137*5113495bSYour Name struct wlan_cds_feature_set cds_feature_set; 138*5113495bSYour Name bool get_wifi_features; 139*5113495bSYour Name #endif 140*5113495bSYour Name bool exclude_selftx_from_cca_busy; 141*5113495bSYour Name }; 142*5113495bSYour Name #endif /* !defined( __CDS_CONFIG_H ) */ 143