xref: /wlan-driver/qcacld-3.0/core/cds/inc/cds_config.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
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