1 /* 2 * Copyright (c) 2018 The Linux Foundation. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for 5 * any purpose with or without fee is hereby granted, provided that the 6 * above copyright notice and this permission notice appear in all 7 * copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 10 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 11 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 12 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 13 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 14 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 15 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 16 * PERFORMANCE OF THIS SOFTWARE. 17 */ 18 19 /** 20 * DOC: This file contains definitions of Data Path configuration. 21 */ 22 23 #ifndef _CFG_DP_H_ 24 #define _CFG_DP_H_ 25 26 #include "cfg_define.h" 27 28 #define WLAN_CFG_MAX_CLIENTS 64 29 #define WLAN_CFG_MAX_CLIENTS_MIN 64 30 #define WLAN_CFG_MAX_CLIENTS_MAX 64 31 32 /* Change this to a lower value to enforce scattered idle list mode */ 33 #define WLAN_CFG_MAX_ALLOC_SIZE 0x200000 34 #define WLAN_CFG_MAX_ALLOC_SIZE_MIN 0x200000 35 #define WLAN_CFG_MAX_ALLOC_SIZE_MAX 0x200000 36 37 #define WLAN_CFG_NUM_TCL_DATA_RINGS 3 38 #define WLAN_CFG_NUM_TCL_DATA_RINGS_MIN 3 39 #define WLAN_CFG_NUM_TCL_DATA_RINGS_MAX 3 40 41 #ifdef CONFIG_MCL 42 #ifdef IPA_OFFLOAD 43 #define WLAN_CFG_PER_PDEV_TX_RING 0 44 #else 45 #define WLAN_CFG_PER_PDEV_TX_RING 1 46 #endif 47 #else 48 #define WLAN_CFG_PER_PDEV_TX_RING 0 49 #endif 50 51 #define WLAN_CFG_PER_PDEV_TX_RING_MIN 0 52 #define WLAN_CFG_PER_PDEV_TX_RING_MAX 1 53 54 #ifdef CONFIG_MCL 55 #define WLAN_CFG_PER_PDEV_RX_RING 0 56 #define WLAN_CFG_PER_PDEV_LMAC_RING 0 57 #define WLAN_LRO_ENABLE 1 58 #ifdef IPA_OFFLOAD 59 #define WLAN_CFG_TX_RING_SIZE 2048 60 #else 61 #define WLAN_CFG_TX_RING_SIZE 512 62 #endif 63 #define WLAN_CFG_TX_COMP_RING_SIZE 1024 64 65 /* Tx Descriptor and Tx Extension Descriptor pool sizes */ 66 #define WLAN_CFG_NUM_TX_DESC 1024 67 #define WLAN_CFG_NUM_TX_EXT_DESC 1024 68 69 /* Interrupt Mitigation - Batch threshold in terms of number of frames */ 70 #define WLAN_CFG_INT_BATCH_THRESHOLD_TX 1 71 #define WLAN_CFG_INT_BATCH_THRESHOLD_RX 1 72 #define WLAN_CFG_INT_BATCH_THRESHOLD_OTHER 1 73 74 /* Interrupt Mitigation - Timer threshold in us */ 75 #define WLAN_CFG_INT_TIMER_THRESHOLD_TX 8 76 #define WLAN_CFG_INT_TIMER_THRESHOLD_RX 8 77 #define WLAN_CFG_INT_TIMER_THRESHOLD_OTHER 8 78 #endif 79 80 #ifdef CONFIG_WIN 81 #define WLAN_CFG_PER_PDEV_RX_RING 0 82 #define WLAN_CFG_PER_PDEV_LMAC_RING 1 83 #define WLAN_LRO_ENABLE 0 84 85 /* Tx Descriptor and Tx Extension Descriptor pool sizes */ 86 #define WLAN_CFG_NUM_TX_DESC 0x320000 87 #define WLAN_CFG_NUM_TX_EXT_DESC 0x80000 88 89 /* Interrupt Mitigation - Batch threshold in terms of number of frames */ 90 #define WLAN_CFG_INT_BATCH_THRESHOLD_TX 256 91 #define WLAN_CFG_INT_BATCH_THRESHOLD_RX 128 92 #define WLAN_CFG_INT_BATCH_THRESHOLD_OTHER 1 93 94 /* Interrupt Mitigation - Timer threshold in us */ 95 #define WLAN_CFG_INT_TIMER_THRESHOLD_TX 1000 96 #define WLAN_CFG_INT_TIMER_THRESHOLD_RX 500 97 #define WLAN_CFG_INT_TIMER_THRESHOLD_OTHER 1000 98 99 #define WLAN_CFG_TX_RING_SIZE 512 100 101 /* Size the completion ring using following 2 parameters 102 * - NAPI schedule latency (assuming 1 netdev competing for CPU) 103 * = 20 ms (2 jiffies) 104 * - Worst case PPS requirement = 400K PPS 105 * 106 * Ring size = 20 * 400 = 8000 107 * 8192 is nearest power of 2 108 */ 109 #define WLAN_CFG_TX_COMP_RING_SIZE 0x80000 110 #endif 111 112 #define WLAN_CFG_PER_PDEV_RX_RING_MIN 0 113 #define WLAN_CFG_PER_PDEV_RX_RING_MAX 0 114 115 #define WLAN_CFG_PER_PDEV_LMAC_RING_MIN 0 116 #define WLAN_CFG_PER_PDEV_LMAC_RING_MAX 1 117 118 #define WLAN_CFG_TX_RING_SIZE_MIN 512 119 #define WLAN_CFG_TX_RING_SIZE_MAX 2048 120 121 #define WLAN_CFG_TX_COMP_RING_SIZE_MIN 1024 122 #define WLAN_CFG_TX_COMP_RING_SIZE_MAX 0x80000 123 124 #define WLAN_CFG_NUM_TX_DESC_MIN 1024 125 #define WLAN_CFG_NUM_TX_DESC_MAX 0x320000 126 127 #define WLAN_CFG_NUM_TX_EXT_DESC_MIN 1024 128 #define WLAN_CFG_NUM_TX_EXT_DESC_MAX 0x80000 129 130 #define WLAN_CFG_INT_BATCH_THRESHOLD_TX_MIN 1 131 #define WLAN_CFG_INT_BATCH_THRESHOLD_TX_MAX 256 132 133 #define WLAN_CFG_INT_BATCH_THRESHOLD_RX_MIN 1 134 #define WLAN_CFG_INT_BATCH_THRESHOLD_RX_MAX 128 135 136 #define WLAN_CFG_INT_BATCH_THRESHOLD_OTHER_MIN 1 137 #define WLAN_CFG_INT_BATCH_THRESHOLD_OTHER_MAX 1 138 139 #define WLAN_CFG_INT_TIMER_THRESHOLD_TX_MIN 8 140 #define WLAN_CFG_INT_TIMER_THRESHOLD_TX_MAX 100 141 142 #define WLAN_CFG_INT_TIMER_THRESHOLD_RX_MIN 8 143 #define WLAN_CFG_INT_TIMER_THRESHOLD_RX_MAX 500 144 145 #define WLAN_CFG_INT_TIMER_THRESHOLD_OTHER_MIN 8 146 #define WLAN_CFG_INT_TIMER_THRESHOLD_OTHER_MAX 1000 147 148 #define WLAN_CFG_NSS_TX_COMP_RING_SIZE 0x2000 149 #define WLAN_CFG_NSS_TX_COMP_RING_SIZE_MIN 0x2000 150 #define WLAN_CFG_NSS_TX_COMP_RING_SIZE_MAX 0x2000 151 152 #ifdef QCA_LL_TX_FLOW_CONTROL_V2 153 154 /* Per vdev pools */ 155 #define WLAN_CFG_NUM_TX_DESC_POOL 3 156 #define WLAN_CFG_NUM_TXEXT_DESC_POOL 3 157 158 #else /* QCA_LL_TX_FLOW_CONTROL_V2 */ 159 160 #ifdef TX_PER_PDEV_DESC_POOL 161 #define WLAN_CFG_NUM_TX_DESC_POOL MAX_PDEV_CNT 162 #define WLAN_CFG_NUM_TXEXT_DESC_POOL MAX_PDEV_CNT 163 164 #else /* TX_PER_PDEV_DESC_POOL */ 165 166 #define WLAN_CFG_NUM_TX_DESC_POOL 3 167 #define WLAN_CFG_NUM_TXEXT_DESC_POOL 3 168 169 #endif /* TX_PER_PDEV_DESC_POOL */ 170 #endif /* QCA_LL_TX_FLOW_CONTROL_V2 */ 171 172 #define WLAN_CFG_NUM_TXEXT_DESC_POOL_MIN 1 173 #define WLAN_CFG_NUM_TXEXT_DESC_POOL_MAX 4 174 175 #define WLAN_CFG_HTT_PKT_TYPE 2 176 #define WLAN_CFG_HTT_PKT_TYPE_MIN 2 177 #define WLAN_CFG_HTT_PKT_TYPE_MAX 2 178 179 #define WLAN_CFG_MAX_PEER_ID 64 180 #define WLAN_CFG_MAX_PEER_ID_MIN 64 181 #define WLAN_CFG_MAX_PEER_ID_MAX 64 182 183 #define WLAN_CFG_RX_DEFRAG_TIMEOUT 100 184 #define WLAN_CFG_RX_DEFRAG_TIMEOUT_MIN 100 185 #define WLAN_CFG_RX_DEFRAG_TIMEOUT_MAX 100 186 187 #define WLAN_CFG_NUM_TCL_DATA_RINGS 3 188 #define WLAN_CFG_NUM_TCL_DATA_RINGS_MIN 3 189 #define WLAN_CFG_NUM_TCL_DATA_RINGS_MAX 3 190 191 #define WLAN_CFG_NUM_REO_DEST_RING 4 192 #define WLAN_CFG_NUM_REO_DEST_RING_MIN 4 193 #define WLAN_CFG_NUM_REO_DEST_RING_MAX 4 194 195 #define WLAN_CFG_WBM_RELEASE_RING_SIZE 64 196 #define WLAN_CFG_WBM_RELEASE_RING_SIZE_MIN 64 197 #define WLAN_CFG_WBM_RELEASE_RING_SIZE_MAX 64 198 199 #define WLAN_CFG_TCL_CMD_RING_SIZE 32 200 #define WLAN_CFG_TCL_CMD_RING_SIZE_MIN 32 201 #define WLAN_CFG_TCL_CMD_RING_SIZE_MAX 32 202 203 #define WLAN_CFG_TCL_STATUS_RING_SIZE 32 204 #define WLAN_CFG_TCL_STATUS_RING_SIZE_MIN 32 205 #define WLAN_CFG_TCL_STATUS_RING_SIZE_MAX 32 206 207 #if defined(QCA_WIFI_QCA6290) 208 #define WLAN_CFG_REO_DST_RING_SIZE 1024 209 #else 210 #define WLAN_CFG_REO_DST_RING_SIZE 2048 211 #endif 212 213 #define WLAN_CFG_REO_DST_RING_SIZE_MIN 1024 214 #define WLAN_CFG_REO_DST_RING_SIZE_MAX 2048 215 216 #define WLAN_CFG_REO_REINJECT_RING_SIZE 32 217 #define WLAN_CFG_REO_REINJECT_RING_SIZE_MIN 32 218 #define WLAN_CFG_REO_REINJECT_RING_SIZE_MAX 32 219 220 #define WLAN_CFG_RX_RELEASE_RING_SIZE 1024 221 #define WLAN_CFG_RX_RELEASE_RING_SIZE_MIN 1024 222 #define WLAN_CFG_RX_RELEASE_RING_SIZE_MAX 1024 223 224 #define WLAN_CFG_REO_EXCEPTION_RING_SIZE 128 225 #define WLAN_CFG_REO_EXCEPTION_RING_SIZE_MIN 128 226 #define WLAN_CFG_REO_EXCEPTION_RING_SIZE_MAX 128 227 228 #define WLAN_CFG_REO_CMD_RING_SIZE 64 229 #define WLAN_CFG_REO_CMD_RING_SIZE_MIN 64 230 #define WLAN_CFG_REO_CMD_RING_SIZE_MAX 64 231 232 #define WLAN_CFG_REO_STATUS_RING_SIZE 128 233 #define WLAN_CFG_REO_STATUS_RING_SIZE_MIN 128 234 #define WLAN_CFG_REO_STATUS_RING_SIZE_MAX 128 235 236 #define WLAN_CFG_RXDMA_BUF_RING_SIZE 1024 237 #define WLAN_CFG_RXDMA_BUF_RING_SIZE_MIN 1024 238 #define WLAN_CFG_RXDMA_BUF_RING_SIZE_MAX 1024 239 240 #define WLAN_CFG_RXDMA_REFILL_RING_SIZE 4096 241 #define WLAN_CFG_RXDMA_REFILL_RING_SIZE_MIN 4096 242 #define WLAN_CFG_RXDMA_REFILL_RING_SIZE_MAX 4096 243 244 #define WLAN_CFG_RXDMA_MONITOR_BUF_RING_SIZE 4096 245 #define WLAN_CFG_RXDMA_MONITOR_BUF_RING_SIZE_MIN 4096 246 #define WLAN_CFG_RXDMA_MONITOR_BUF_RING_SIZE_MAX 4096 247 248 #define WLAN_CFG_RXDMA_MONITOR_DST_RING_SIZE 2048 249 #define WLAN_CFG_RXDMA_MONITOR_DST_RING_SIZE_MIN 2048 250 #define WLAN_CFG_RXDMA_MONITOR_DST_RING_SIZE_MAX 2048 251 252 #define WLAN_CFG_RXDMA_MONITOR_STATUS_RING_SIZE 1024 253 #define WLAN_CFG_RXDMA_MONITOR_STATUS_RING_SIZE_MIN 1024 254 #define WLAN_CFG_RXDMA_MONITOR_STATUS_RING_SIZE_MAX 1024 255 256 #define WLAN_CFG_RXDMA_MONITOR_DESC_RING_SIZE 4096 257 #define WLAN_CFG_RXDMA_MONITOR_DESC_RING_SIZE_MIN 4096 258 #define WLAN_CFG_RXDMA_MONITOR_DESC_RING_SIZE_MAX 4096 259 260 #define WLAN_CFG_RXDMA_ERR_DST_RING_SIZE 1024 261 #define WLAN_CFG_RXDMA_ERR_DST_RING_SIZE_MIN 1024 262 #define WLAN_CFG_RXDMA_ERR_DST_RING_SIZE_MAX 1024 263 264 /* DP INI Declerations */ 265 #define CFG_DP_HTT_PACKET_TYPE \ 266 CFG_INI_UINT("dp_htt_packet_type", \ 267 WLAN_CFG_HTT_PKT_TYPE_MIN, \ 268 WLAN_CFG_HTT_PKT_TYPE_MAX, \ 269 WLAN_CFG_HTT_PKT_TYPE, \ 270 CFG_VALUE_OR_DEFAULT, "DP HTT packet type") 271 272 #define CFG_DP_INT_BATCH_THRESHOLD_OTHER \ 273 CFG_INI_UINT("dp_int_batch_threshold_other", \ 274 WLAN_CFG_INT_TIMER_THRESHOLD_OTHER_MIN, \ 275 WLAN_CFG_INT_TIMER_THRESHOLD_OTHER_MAX, \ 276 WLAN_CFG_INT_TIMER_THRESHOLD_OTHER, \ 277 CFG_VALUE_OR_DEFAULT, "DP INT threshold Other") 278 279 #define CFG_DP_INT_BATCH_THRESHOLD_RX \ 280 CFG_INI_UINT("dp_int_batch_threshold_rx", \ 281 WLAN_CFG_INT_BATCH_THRESHOLD_RX_MIN, \ 282 WLAN_CFG_INT_BATCH_THRESHOLD_RX_MAX, \ 283 WLAN_CFG_INT_BATCH_THRESHOLD_RX, \ 284 CFG_VALUE_OR_DEFAULT, "DP INT threshold Rx") 285 286 #define CFG_DP_INT_BATCH_THRESHOLD_TX \ 287 CFG_INI_UINT("dp_int_batch_threshold_tx", \ 288 WLAN_CFG_INT_BATCH_THRESHOLD_TX_MIN, \ 289 WLAN_CFG_INT_BATCH_THRESHOLD_TX_MAX, \ 290 WLAN_CFG_INT_BATCH_THRESHOLD_TX, \ 291 CFG_VALUE_OR_DEFAULT, "DP INT threshold Tx") 292 293 #define CFG_DP_INT_TIMER_THRESHOLD_OTHER \ 294 CFG_INI_UINT("dp_int_timer_threshold_other", \ 295 WLAN_CFG_INT_TIMER_THRESHOLD_OTHER_MIN, \ 296 WLAN_CFG_INT_TIMER_THRESHOLD_OTHER_MAX, \ 297 WLAN_CFG_INT_TIMER_THRESHOLD_OTHER, \ 298 CFG_VALUE_OR_DEFAULT, "DP INT timer threshold Other") 299 300 #define CFG_DP_INT_TIMER_THRESHOLD_RX \ 301 CFG_INI_UINT("dp_int_timer_threshold_rx", \ 302 WLAN_CFG_INT_TIMER_THRESHOLD_RX_MIN, \ 303 WLAN_CFG_INT_TIMER_THRESHOLD_RX_MAX, \ 304 WLAN_CFG_INT_TIMER_THRESHOLD_RX, \ 305 CFG_VALUE_OR_DEFAULT, "DP INT timer threshold Rx") 306 307 #define CFG_DP_INT_TIMER_THRESHOLD_TX \ 308 CFG_INI_UINT("dp_int_timer_threshold_tx", \ 309 WLAN_CFG_INT_TIMER_THRESHOLD_TX_MIN, \ 310 WLAN_CFG_INT_TIMER_THRESHOLD_TX_MAX, \ 311 WLAN_CFG_INT_TIMER_THRESHOLD_TX, \ 312 CFG_VALUE_OR_DEFAULT, "DP INT timer threshold Tx") 313 314 #define CFG_DP_MAX_ALLOC_SIZE \ 315 CFG_INI_UINT("dp_max_alloc_size", \ 316 WLAN_CFG_MAX_ALLOC_SIZE_MIN, \ 317 WLAN_CFG_MAX_ALLOC_SIZE_MAX, \ 318 WLAN_CFG_MAX_ALLOC_SIZE, \ 319 CFG_VALUE_OR_DEFAULT, "DP Max Alloc Size") 320 321 #define CFG_DP_MAX_CLIENTS \ 322 CFG_INI_UINT("dp_max_clients", \ 323 WLAN_CFG_MAX_CLIENTS_MIN, \ 324 WLAN_CFG_MAX_CLIENTS_MAX, \ 325 WLAN_CFG_MAX_CLIENTS, \ 326 CFG_VALUE_OR_DEFAULT, "DP Max Clients") 327 328 #define CFG_DP_MAX_PEER_ID \ 329 CFG_INI_UINT("dp_max_peer_id", \ 330 WLAN_CFG_MAX_PEER_ID_MIN, \ 331 WLAN_CFG_MAX_PEER_ID_MAX, \ 332 WLAN_CFG_MAX_PEER_ID, \ 333 CFG_VALUE_OR_DEFAULT, "DP Max Peer ID") 334 335 #define CFG_DP_REO_DEST_RINGS \ 336 CFG_INI_UINT("dp_reo_dest_rings", \ 337 WLAN_CFG_NUM_REO_DEST_RING_MIN, \ 338 WLAN_CFG_NUM_REO_DEST_RING_MAX, \ 339 WLAN_CFG_NUM_REO_DEST_RING, \ 340 CFG_VALUE_OR_DEFAULT, "DP REO Destination Rings") 341 342 #define CFG_DP_TCL_DATA_RINGS \ 343 CFG_INI_UINT("dp_tcl_data_rings", \ 344 WLAN_CFG_NUM_TCL_DATA_RINGS_MIN, \ 345 WLAN_CFG_NUM_TCL_DATA_RINGS_MAX, \ 346 WLAN_CFG_NUM_TCL_DATA_RINGS, \ 347 CFG_VALUE_OR_DEFAULT, "DP TCL Data Rings") 348 349 #define CFG_DP_TX_DESC \ 350 CFG_INI_UINT("dp_tx_desc", \ 351 WLAN_CFG_NUM_TX_DESC_MIN, \ 352 WLAN_CFG_NUM_TX_DESC_MAX, \ 353 WLAN_CFG_NUM_TX_DESC, \ 354 CFG_VALUE_OR_DEFAULT, "DP Tx Descriptors") 355 356 #define CFG_DP_TX_EXT_DESC \ 357 CFG_INI_UINT("dp_tx_ext_desc", \ 358 WLAN_CFG_NUM_TX_EXT_DESC_MIN, \ 359 WLAN_CFG_NUM_TX_EXT_DESC_MAX, \ 360 WLAN_CFG_NUM_TX_EXT_DESC, \ 361 CFG_VALUE_OR_DEFAULT, "DP Tx Ext Descriptors") 362 363 #define CFG_DP_TX_EXT_DESC_POOLS \ 364 CFG_INI_UINT("dp_tx_ext_desc_pool", \ 365 WLAN_CFG_NUM_TXEXT_DESC_POOL_MIN, \ 366 WLAN_CFG_NUM_TXEXT_DESC_POOL_MAX, \ 367 WLAN_CFG_NUM_TXEXT_DESC_POOL, \ 368 CFG_VALUE_OR_DEFAULT, "DP Tx Ext Descriptors Pool") 369 370 #define CFG_DP_PDEV_RX_RING \ 371 CFG_INI_UINT("dp_pdev_rx_ring", \ 372 WLAN_CFG_PER_PDEV_RX_RING_MIN, \ 373 WLAN_CFG_PER_PDEV_RX_RING_MAX, \ 374 WLAN_CFG_PER_PDEV_RX_RING, \ 375 CFG_VALUE_OR_DEFAULT, "DP PDEV Rx Ring") 376 377 #define CFG_DP_PDEV_TX_RING \ 378 CFG_INI_UINT("dp_pdev_tx_ring", \ 379 WLAN_CFG_PER_PDEV_TX_RING_MIN, \ 380 WLAN_CFG_PER_PDEV_TX_RING_MAX, \ 381 WLAN_CFG_PER_PDEV_TX_RING, \ 382 CFG_VALUE_OR_DEFAULT, \ 383 "DP PDEV Tx Ring") 384 385 #define CFG_DP_RX_DEFRAG_TIMEOUT \ 386 CFG_INI_UINT("dp_rx_defrag_timeout", \ 387 WLAN_CFG_RX_DEFRAG_TIMEOUT_MIN, \ 388 WLAN_CFG_RX_DEFRAG_TIMEOUT_MAX, \ 389 WLAN_CFG_RX_DEFRAG_TIMEOUT, \ 390 CFG_VALUE_OR_DEFAULT, "DP Rx Defrag Timeout") 391 392 #define CFG_DP_TX_COMPL_RING_SIZE \ 393 CFG_INI_UINT("dp_tx_compl_ring_size", \ 394 WLAN_CFG_TX_COMP_RING_SIZE_MIN, \ 395 WLAN_CFG_TX_COMP_RING_SIZE_MAX, \ 396 WLAN_CFG_TX_COMP_RING_SIZE, \ 397 CFG_VALUE_OR_DEFAULT, "DP Tx Completion Ring Size") 398 399 #define CFG_DP_TX_RING_SIZE \ 400 CFG_INI_UINT("dp_tx_ring_size", \ 401 WLAN_CFG_TX_RING_SIZE_MIN,\ 402 WLAN_CFG_TX_RING_SIZE_MAX,\ 403 WLAN_CFG_TX_RING_SIZE,\ 404 CFG_VALUE_OR_DEFAULT, "DP Tx Ring Size") 405 406 #define CFG_DP_NSS_COMP_RING_SIZE \ 407 CFG_INI_UINT("dp_nss_comp_ring_size", \ 408 WLAN_CFG_NSS_TX_COMP_RING_SIZE_MIN, \ 409 WLAN_CFG_NSS_TX_COMP_RING_SIZE_MAX, \ 410 WLAN_CFG_NSS_TX_COMP_RING_SIZE, \ 411 CFG_VALUE_OR_DEFAULT, "DP NSS completion Ring Size") 412 413 #define CFG_DP_PDEV_LMAC_RING \ 414 CFG_INI_UINT("dp_pdev_lmac_ring", \ 415 WLAN_CFG_PER_PDEV_LMAC_RING_MIN, \ 416 WLAN_CFG_PER_PDEV_LMAC_RING_MAX, \ 417 WLAN_CFG_PER_PDEV_LMAC_RING, \ 418 CFG_VALUE_OR_DEFAULT, "DP pdev LMAC ring") 419 420 #define CFG_DP_BASE_HW_MAC_ID \ 421 CFG_INI_UINT("dp_base_hw_macid", \ 422 0, 1, 1, \ 423 CFG_VALUE_OR_DEFAULT, "DP Base HW Mac ID") 424 425 #define CFG_DP_LRO \ 426 CFG_INI_BOOL("LROEnable", WLAN_LRO_ENABLE, \ 427 "DP LRO Enable") 428 429 #define CFG_DP_RX_HASH \ 430 CFG_INI_BOOL("dp_rx_hash", true, \ 431 "DP Rx Hash") 432 433 #define CFG_DP_TSO \ 434 CFG_INI_BOOL("TSOEnable", false, \ 435 "DP TSO Enabled") 436 437 #define CFG_DP_NAPI \ 438 CFG_INI_BOOL("dp_napi_enabled", MCL_OR_WIN_VALUE(true, false), \ 439 "DP Napi Enabled") 440 441 #define CFG_DP_TCP_UDP_CKSUM_OFFLOAD \ 442 CFG_INI_BOOL("dp_tcp_udp_checksumoffload", true, \ 443 "DP TCP UDP Checksum Offload") 444 445 #define CFG_DP_DEFRAG_TIMEOUT_CHECK \ 446 CFG_INI_BOOL("dp_defrag_timeout_check", true, \ 447 "DP Defrag Timeout Check") 448 449 #define CFG_DP_WBM_RELEASE_RING \ 450 CFG_INI_UINT("dp_wbm_release_ring", \ 451 WLAN_CFG_WBM_RELEASE_RING_SIZE_MIN, \ 452 WLAN_CFG_WBM_RELEASE_RING_SIZE_MAX, \ 453 WLAN_CFG_WBM_RELEASE_RING_SIZE, \ 454 CFG_VALUE_OR_DEFAULT, "DP WBM Release Ring") 455 456 #define CFG_DP_TCL_CMD_RING \ 457 CFG_INI_UINT("dp_tcl_cmd_ring", \ 458 WLAN_CFG_TCL_CMD_RING_SIZE_MIN, \ 459 WLAN_CFG_TCL_CMD_RING_SIZE_MAX, \ 460 WLAN_CFG_TCL_CMD_RING_SIZE, \ 461 CFG_VALUE_OR_DEFAULT, "DP TCL command ring") 462 463 #define CFG_DP_TCL_STATUS_RING \ 464 CFG_INI_UINT("dp_tcl_status_ring",\ 465 WLAN_CFG_TCL_STATUS_RING_SIZE_MIN, \ 466 WLAN_CFG_TCL_STATUS_RING_SIZE_MAX, \ 467 WLAN_CFG_TCL_STATUS_RING_SIZE, \ 468 CFG_VALUE_OR_DEFAULT, "DP TCL status ring") 469 470 #define CFG_DP_REO_REINJECT_RING \ 471 CFG_INI_UINT("dp_reo_reinject_ring", \ 472 WLAN_CFG_REO_REINJECT_RING_SIZE_MIN, \ 473 WLAN_CFG_REO_REINJECT_RING_SIZE_MAX, \ 474 WLAN_CFG_REO_REINJECT_RING_SIZE, \ 475 CFG_VALUE_OR_DEFAULT, "DP REO reinject ring") 476 477 #define CFG_DP_RX_RELEASE_RING \ 478 CFG_INI_UINT("dp_rx_release_ring", \ 479 WLAN_CFG_RX_RELEASE_RING_SIZE_MIN, \ 480 WLAN_CFG_RX_RELEASE_RING_SIZE_MAX, \ 481 WLAN_CFG_RX_RELEASE_RING_SIZE, \ 482 CFG_VALUE_OR_DEFAULT, "DP Rx release ring") 483 484 #define CFG_DP_REO_EXCEPTION_RING \ 485 CFG_INI_UINT("dp_reo_exception_ring", \ 486 WLAN_CFG_REO_EXCEPTION_RING_SIZE_MIN, \ 487 WLAN_CFG_REO_EXCEPTION_RING_SIZE_MAX, \ 488 WLAN_CFG_REO_EXCEPTION_RING_SIZE, \ 489 CFG_VALUE_OR_DEFAULT, "DP REO exception ring") 490 491 #define CFG_DP_REO_CMD_RING \ 492 CFG_INI_UINT("dp_reo_cmd_ring", \ 493 WLAN_CFG_REO_CMD_RING_SIZE_MIN, \ 494 WLAN_CFG_REO_CMD_RING_SIZE_MAX, \ 495 WLAN_CFG_REO_CMD_RING_SIZE, \ 496 CFG_VALUE_OR_DEFAULT, "DP REO command ring") 497 498 #define CFG_DP_REO_STATUS_RING \ 499 CFG_INI_UINT("dp_reo_status_ring", \ 500 WLAN_CFG_REO_STATUS_RING_SIZE_MIN, \ 501 WLAN_CFG_REO_STATUS_RING_SIZE_MAX, \ 502 WLAN_CFG_REO_STATUS_RING_SIZE, \ 503 CFG_VALUE_OR_DEFAULT, "DP REO status ring") 504 505 #define CFG_DP_RXDMA_BUF_RING \ 506 CFG_INI_UINT("dp_rxdma_buf_ring", \ 507 WLAN_CFG_RXDMA_BUF_RING_SIZE_MIN, \ 508 WLAN_CFG_RXDMA_BUF_RING_SIZE_MAX, \ 509 WLAN_CFG_RXDMA_BUF_RING_SIZE, \ 510 CFG_VALUE_OR_DEFAULT, "DP RXDMA buffer ring") 511 512 #define CFG_DP_RXDMA_REFILL_RING \ 513 CFG_INI_UINT("dp_rxdma_refill_ring", \ 514 WLAN_CFG_RXDMA_REFILL_RING_SIZE_MIN, \ 515 WLAN_CFG_RXDMA_REFILL_RING_SIZE_MAX, \ 516 WLAN_CFG_RXDMA_REFILL_RING_SIZE, \ 517 CFG_VALUE_OR_DEFAULT, "DP RXDMA refilll ring") 518 519 #define CFG_DP_RXDMA_MONITOR_BUF_RING \ 520 CFG_INI_UINT("dp_rxdma_monitor_buf_ring", \ 521 WLAN_CFG_RXDMA_MONITOR_BUF_RING_SIZE_MIN, \ 522 WLAN_CFG_RXDMA_MONITOR_BUF_RING_SIZE_MAX, \ 523 WLAN_CFG_RXDMA_MONITOR_BUF_RING_SIZE, \ 524 CFG_VALUE_OR_DEFAULT, "DP RXDMA monitor buffer ring") 525 526 #define CFG_DP_RXDMA_MONITOR_DST_RING \ 527 CFG_INI_UINT("dp_rxdma_monitor_dst_ring", \ 528 WLAN_CFG_RXDMA_MONITOR_DST_RING_SIZE_MIN, \ 529 WLAN_CFG_RXDMA_MONITOR_DST_RING_SIZE_MAX, \ 530 WLAN_CFG_RXDMA_MONITOR_DST_RING_SIZE, \ 531 CFG_VALUE_OR_DEFAULT, "DP RXDMA monitor destination ring") 532 533 #define CFG_DP_RXDMA_MONITOR_STATUS_RING \ 534 CFG_INI_UINT("dp_rxdma_monitor_status_ring", \ 535 WLAN_CFG_RXDMA_MONITOR_STATUS_RING_SIZE_MIN, \ 536 WLAN_CFG_RXDMA_MONITOR_STATUS_RING_SIZE_MAX, \ 537 WLAN_CFG_RXDMA_MONITOR_STATUS_RING_SIZE, \ 538 CFG_VALUE_OR_DEFAULT, "DP RXDMA monitor status ring") 539 540 #define CFG_DP_RXDMA_MONITOR_DESC_RING \ 541 CFG_INI_UINT("dp_rxdma_monitor_desc_ring", \ 542 WLAN_CFG_RXDMA_MONITOR_DESC_RING_SIZE_MIN, \ 543 WLAN_CFG_RXDMA_MONITOR_DESC_RING_SIZE_MAX, \ 544 WLAN_CFG_RXDMA_MONITOR_DESC_RING_SIZE, \ 545 CFG_VALUE_OR_DEFAULT, "DP RXDMA monitor destination ring") 546 547 #define CFG_DP_RXDMA_ERR_DST_RING \ 548 CFG_INI_UINT("dp_rxdma_err_dst_ring", \ 549 WLAN_CFG_RXDMA_ERR_DST_RING_SIZE_MIN, \ 550 WLAN_CFG_RXDMA_ERR_DST_RING_SIZE_MAX, \ 551 WLAN_CFG_RXDMA_ERR_DST_RING_SIZE, \ 552 CFG_VALUE_OR_DEFAULT, "RXDMA err destination ring") 553 554 #define CFG_DP \ 555 CFG(CFG_DP_HTT_PACKET_TYPE) \ 556 CFG(CFG_DP_INT_BATCH_THRESHOLD_OTHER) \ 557 CFG(CFG_DP_INT_BATCH_THRESHOLD_RX) \ 558 CFG(CFG_DP_INT_BATCH_THRESHOLD_TX) \ 559 CFG(CFG_DP_INT_TIMER_THRESHOLD_OTHER) \ 560 CFG(CFG_DP_INT_TIMER_THRESHOLD_RX) \ 561 CFG(CFG_DP_INT_TIMER_THRESHOLD_TX) \ 562 CFG(CFG_DP_MAX_ALLOC_SIZE) \ 563 CFG(CFG_DP_MAX_CLIENTS) \ 564 CFG(CFG_DP_MAX_PEER_ID) \ 565 CFG(CFG_DP_REO_DEST_RINGS) \ 566 CFG(CFG_DP_TCL_DATA_RINGS) \ 567 CFG(CFG_DP_TX_DESC) \ 568 CFG(CFG_DP_TX_EXT_DESC) \ 569 CFG(CFG_DP_TX_EXT_DESC_POOLS) \ 570 CFG(CFG_DP_PDEV_RX_RING) \ 571 CFG(CFG_DP_PDEV_TX_RING) \ 572 CFG(CFG_DP_RX_DEFRAG_TIMEOUT) \ 573 CFG(CFG_DP_TX_COMPL_RING_SIZE) \ 574 CFG(CFG_DP_TX_RING_SIZE) \ 575 CFG(CFG_DP_NSS_COMP_RING_SIZE) \ 576 CFG(CFG_DP_PDEV_LMAC_RING) \ 577 CFG(CFG_DP_BASE_HW_MAC_ID) \ 578 CFG(CFG_DP_LRO) \ 579 CFG(CFG_DP_RX_HASH) \ 580 CFG(CFG_DP_TSO) \ 581 CFG(CFG_DP_NAPI) \ 582 CFG(CFG_DP_TCP_UDP_CKSUM_OFFLOAD) \ 583 CFG(CFG_DP_DEFRAG_TIMEOUT_CHECK) \ 584 CFG(CFG_DP_WBM_RELEASE_RING) \ 585 CFG(CFG_DP_TCL_CMD_RING) \ 586 CFG(CFG_DP_TCL_STATUS_RING) \ 587 CFG(CFG_DP_REO_REINJECT_RING) \ 588 CFG(CFG_DP_RX_RELEASE_RING) \ 589 CFG(CFG_DP_REO_EXCEPTION_RING) \ 590 CFG(CFG_DP_REO_CMD_RING) \ 591 CFG(CFG_DP_REO_STATUS_RING) \ 592 CFG(CFG_DP_RXDMA_BUF_RING) \ 593 CFG(CFG_DP_RXDMA_REFILL_RING) \ 594 CFG(CFG_DP_RXDMA_MONITOR_BUF_RING) \ 595 CFG(CFG_DP_RXDMA_MONITOR_DST_RING) \ 596 CFG(CFG_DP_RXDMA_MONITOR_STATUS_RING) \ 597 CFG(CFG_DP_RXDMA_MONITOR_DESC_RING) \ 598 CFG(CFG_DP_RXDMA_ERR_DST_RING) 599 600 #endif /* _CFG_DP_H_ */ 601