1 /* 2 * Copyright (c) 2012-2021 The Linux Foundation. All rights reserved. 3 * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved. 4 * 5 * Permission to use, copy, modify, and/or distribute this software for 6 * any purpose with or without fee is hereby granted, provided that the 7 * above copyright notice and this permission notice appear in all 8 * copies. 9 * 10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 11 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 12 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 13 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 15 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 16 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 17 * PERFORMANCE OF THIS SOFTWARE. 18 */ 19 20 #ifndef WLAN_PMO_COMMON_CFG_H__ 21 #define WLAN_PMO_COMMON_CFG_H__ 22 23 #include "wlan_pmo_common_public_struct.h" 24 25 #ifdef CONNECTION_ROAMING_CFG 26 # define CONDTIMSKIPPING_NUMBER_MIN 0 27 # define CONDTIMSKIPPING_NUMBER_MAX 10 28 # define CONDTIMSKIPPING_NUMBER_DEFAULT 3 29 #else 30 # define CONDTIMSKIPPING_NUMBER_MIN 0 31 # define CONDTIMSKIPPING_NUMBER_MAX 10 32 # define CONDTIMSKIPPING_NUMBER_DEFAULT 0 33 #endif 34 35 /* 36 * <ini> 37 * hostArpOffload - Enable/disable host ARP offload 38 * @Min: 0 39 * @Max: 1 40 * @Default: 1 41 * 42 * This ini is used to enable/disable firmware's capability of sending ARP 43 * response to clients. 44 * 45 * Usage: External 46 * 47 * </ini> 48 */ 49 #define CFG_PMO_ENABLE_HOST_ARPOFFLOAD CFG_INI_BOOL( \ 50 "hostArpOffload", \ 51 1, \ 52 "enable/disable host ARP offload") 53 54 /* 55 * <ini> 56 * gHwFilterMode - configure hardware filter for DTIM mode 57 * @Min: 0 58 * @Max: 3 59 * @Default: 1 60 * 61 * The hardware filter is only effective in DTIM mode. Use this configuration 62 * to blanket drop broadcast/multicast packets at the hardware level, without 63 * waking up the firmware 64 * 65 * Takes a bitmap of frame types to drop 66 * @E.g. 67 * # disable feature 68 * gHwFilterMode=0 69 * # drop all broadcast frames, except ARP (default) 70 * gHwFilterMode=1 71 * # drop all multicast frames, except ICMPv6 72 * gHwFilterMode=2 73 * # drop all broadcast and multicast frames, except ARP and ICMPv6 74 * gHwFilterMode=3 75 * 76 * Related: N/A 77 * 78 * Usage: Internal/External 79 * 80 * </ini> 81 */ 82 #define CFG_PMO_HW_FILTER_MODE CFG_INI_UINT( \ 83 "gHwFilterMode", \ 84 0, \ 85 3, \ 86 1, \ 87 CFG_VALUE_OR_DEFAULT, \ 88 "hardware filter for DTIM mode") 89 90 /* 91 * <ini> 92 * ssdp - Enable/disable SSDP 93 * @Min: 0 94 * @Max: 1 95 * @Default: 1 96 * 97 * This ini is used to enable/disable Simple Service Discovery Protocol(SSDP). 98 * 99 * Usage: External 100 * 101 * </ini> 102 */ 103 #define CFG_PMO_ENABLE_HOST_SSDP CFG_INI_BOOL( \ 104 "ssdp", \ 105 1, \ 106 "Enable/disable ssdp") 107 108 /* 109 * <ini> 110 * hostNSOffload - Enable/disable NS offload 111 * @Min: 0 112 * @Max: 1 113 * @Default: 1 114 * 115 * This ini is used to enable/disable NS offload. 116 * 117 * Usage: External 118 * 119 * </ini> 120 */ 121 #define CFG_PMO_ENABLE_HOST_NSOFFLOAD CFG_INI_BOOL( \ 122 "hostNSOffload", \ 123 1, \ 124 "Enable/disable NS offload") 125 126 /* 127 * <ini> 128 * CFG_PMO_ENABLE_IGMP_OFFLOAD - Enable/disable igmp offload 129 * @Min: 0 130 * @Max: 1 131 * @Default: 0 132 * 133 * This ini is used to enable/disable igmp offload feature to fw. 134 * 135 * Usage: External 136 * 137 * </ini> 138 */ 139 #define CFG_PMO_ENABLE_IGMP_OFFLOAD CFG_INI_BOOL( \ 140 "igmp_offload_enable", \ 141 0, \ 142 "Enable/disable IGMP offload") 143 144 /* 145 * <ini> 146 * gEnableDynamicDTIM - Enable Dynamic DTIM 147 * @Min: 0 148 * @Max: 10 149 * @Default: 0 150 * 151 * This ini is used to enable/disable dynamic DTIM. 152 * 153 * 0 - Disable Dynamic DTIM 154 * 1 to 10 - SLM will switch to DTIM specified here when host suspends and 155 * switch DTIM1 when host resumes 156 * 157 * Usage: External 158 * 159 * </ini> 160 */ 161 #define CFG_PMO_ENABLE_DYNAMIC_DTIM CFG_INI_UINT( \ 162 "gEnableDynamicDTIM", \ 163 0, \ 164 10, \ 165 0, \ 166 CFG_VALUE_OR_DEFAULT, \ 167 "Enable Dynamic DTIM") 168 169 /* 170 * <ini> 171 * gEnableModulatedDTIM/ConDTIMSkipping_Number - Enable/Disable modulated DTIM 172 * feature 173 * @Min: 0 174 * @Max: 10 175 * @Default: 0 176 * 177 * This ini is used to enable/disable modulated DTIM feature. 178 * 179 * 0 - Disable modulated DTIM. 180 * 1 to 10 - The maximum No. of modulated DTIM period used for calculating the 181 * target listen interval. 182 * 183 * The target listen interval will be updated to firmware when host driver is 184 * setting the suspend DTIM parameters. 185 * 186 * This configuration will be ignored when dynamic DTIM is enabled(by 187 * gEnableDynamicDTIM). 188 * 189 * Usage: External 190 * 191 * </ini> 192 */ 193 194 /* 195 * <ini> 196 * gEnableModulatedDTIM/ConDTIMSkipping_Number - Enable/Disable modulated DTIM 197 * feature 198 * @Min: 0 199 * @Max: 10 200 * @Default: 0 201 * 202 * This ini is used to enable/disable modulated DTIM feature. 203 * 204 * 0 - Disable modulated DTIM. 205 * 1 to 10 - The maximum No. of modulated DTIM period used for calculating the 206 * target listen interval. 207 * 208 * The target listen interval will be updated to firmware when host driver is 209 * setting the suspend DTIM parameters. 210 * 211 * This configuration will be ignored when dynamic DTIM is enabled(by 212 * gEnableDynamicDTIM). 213 * 214 * Usage: External 215 * 216 * </ini> 217 */ 218 #define CFG_PMO_ENABLE_MODULATED_DTIM CFG_INI_UINT( \ 219 "gEnableModulatedDTIM ConDTIMSkipping_Number", \ 220 CONDTIMSKIPPING_NUMBER_MIN, \ 221 CONDTIMSKIPPING_NUMBER_MAX, \ 222 CONDTIMSKIPPING_NUMBER_DEFAULT, \ 223 CFG_VALUE_OR_DEFAULT, \ 224 "Enable/disable modulated DTIM feature") 225 226 /* 227 * <ini> 228 * gMCAddrListEnable - Enable/disable multicast MAC address list feature 229 * @Min: 0 230 * @Max: 1 231 * @Default: 1 232 * 233 * This ini is used to enable/disable multicast MAC address list feature. 234 * Default: Enable 235 * 236 * Related: None 237 * 238 * Supported Feature: STA 239 * 240 * Usage: Internal/External 241 * 242 * </ini> 243 */ 244 #define CFG_PMO_MC_ADDR_LIST_ENABLE CFG_INI_BOOL( \ 245 "gMCAddrListEnable", \ 246 1, \ 247 "Enable/disable multicast MAC address list feature") 248 249 /* 250 * <ini> 251 * gOptimizedPowerManagement - Optimized Power Management 252 * @Min: 0 253 * @Max: 2 254 * @Default: 1 255 * 256 * This ini is used to set Optimized Power Management configuration: 257 * Current values of gOptimizedPowerManagement: 258 * 0 -> Disable optimized power management 259 * 1 -> Enable optimized power management 260 * 2 -> User Defined 261 * 262 * Related: None 263 * 264 * Supported Feature: Optimized Power Management 265 * 266 * Usage: External 267 * 268 * </ini> 269 */ 270 #define CFG_PMO_POWERSAVE_MODE CFG_INI_UINT( \ 271 "gOptimizedPowerManagement", \ 272 0, \ 273 2, \ 274 1, \ 275 CFG_VALUE_OR_DEFAULT, \ 276 "Optimized Power Management") 277 278 /* 279 * <ini> 280 * enable_mod_dtim_on_system_suspend - enable modulated DTIM 281 * on system suspend display off case 282 * @Min: 0 283 * @Max: 1 284 * @Default: 0 285 * 286 * This ini is used to set modulated DTIM configuration: 287 * Current values of enable_mod_dtim_on_system_suspend: 288 * 0 -> Modulated DTIM will be enabled for every wow entry 289 * (RTPM wow + System suspend wow) 290 * 1 -> Enable modulated DTIM only for System suspend wow. 291 * For RTPM wow, the device will stay in DTIM 1 (non-modulated DTIM) 292 * 293 * Related: None 294 * 295 * Supported Feature: Modulated DTIM 296 * 297 * Usage: External 298 * 299 * </ini> 300 */ 301 #define CFG_PMO_MOD_DTIM_ON_SYS_SUSPEND CFG_INI_BOOL( \ 302 "enable_mod_dtim_on_system_suspend", \ 303 0, \ 304 "Modulated DTIM on System suspend wow") 305 306 /* 307 * <ini> 308 * gEnableForcedDTIM - Enable/Disable forced DTIM feature 309 * @Min: 0 310 * @Max: 1 311 * @Default: 0 312 * 313 * This ini is used to enable/disable forced DTIM feature. 314 * 315 * 0 - Disable forced DTIM. 316 * 1 - Enable forced DTIM 317 * 318 * 319 * Usage: External 320 * 321 * </ini> 322 */ 323 #define CFG_PMO_ENABLE_FORCED_DTIM CFG_INI_BOOL( \ 324 "gEnableForcedDTIM", \ 325 0, \ 326 "Enable/disable Forced DTIM feature") 327 328 /* 329 * <ini> 330 * gMaxPsPoll - Max powersave poll 331 * @Min: 0 332 * @Max: 255 333 * @Default: 0 334 * 335 * This ini is used to set max powersave poll. 336 * 337 * Usage: External 338 * 339 * </ini> 340 */ 341 #define CFG_PMO_MAX_PS_POLL CFG_INI_UINT( \ 342 "gMaxPsPoll", \ 343 0, \ 344 255, \ 345 0, \ 346 CFG_VALUE_OR_DEFAULT, \ 347 "Max powersave poll") 348 349 /* 350 * <ini> 351 * gEnableWoW - Enable/Disable WoW 352 * @Min: 0 353 * @Max: 3 354 * @Default: 3 355 * 356 * This ini is used to enable/disable WoW. Configurations are as follows: 357 * 0 - Disable both magic pattern match and pattern byte match. 358 * 1 - Enable magic pattern match on all interfaces. 359 * 2 - Enable pattern byte match on all interfaces. 360 * 3 - Enable both magic pattern and pattern byte match on all interfaces. 361 * 362 * Related: None 363 * 364 * Supported Feature: Power Save 365 * 366 * Usage: External 367 * 368 * </ini> 369 */ 370 #define CFG_PMO_WOW_ENABLE CFG_INI_UINT("gEnableWoW", \ 371 0, 3, 3, \ 372 CFG_VALUE_OR_DEFAULT, \ 373 "Enable WoW Support") 374 375 /* 376 * <ini> 377 * gSuspendMode - Suspend mode configuration 378 * @Min: 0 379 * @Max: 3 380 * @Default: 2 381 * 382 * This ini is used to set suspend mode. Configurations are as follows: 383 * 0 - Does not support suspend. 384 * 1 - Legency suspend mode, PDEV suspend. 385 * 2 - WOW suspend mode. 386 * 3 - Shutdown wlan while suspend. 387 * 388 * Related: None 389 * 390 * Supported Feature: Power Save 391 * 392 * Usage: External 393 * 394 * </ini> 395 */ 396 #define CFG_PMO_SUSPEND_MODE CFG_INI_UINT("gSuspendMode", \ 397 0, 3, 2, \ 398 CFG_VALUE_OR_DEFAULT, \ 399 "Suspend mode") 400 401 /* 402 * <ini> 403 * gActiveModeOffload - Active offload mode configuration 404 * @Min: 0 405 * @Max: 1 406 * @Default: 1 407 * 408 * When set to 1 active mode offload will be enabled. 409 * 410 * If active mode offload is enabled then all applicable data offload/filtering 411 * is enabled immediately in FW once config is available in WLAN driver and FW 412 * caches this configuration across suspend/resume; 413 * If active mode offload is disabled then all applicable data offload/filtering 414 * is enabled during cfg80211 suspend and disabled during cfg80211 resume. 415 * 416 * Supported Feature: Active mode offload 417 * 418 * Usage: External 419 * 420 * </ini> 421 */ 422 #define CFG_PMO_ACTIVE_MODE CFG_INI_BOOL("gActiveModeOffload", \ 423 1, \ 424 "Enable active mode offload") 425 426 /* 427 * <ini> 428 * g_auto_detect_power_failure_mode - Auto detect power save failure mode 429 * @Min: PMO_FW_TO_CRASH_ON_PWR_FAILURE 430 * @Max: PMO_AUTO_PWR_FAILURE_DETECT_DISABLE 431 * @Default: PMO_FW_TO_CRASH_ON_PWR_FAILURE 432 * 433 * Specifies the behavior of FW in case of CHIP_POWER_SAVE_FAIL_DETECTED event 434 * 435 * Supported Feature: Auto detect power save failure 436 * 437 * Usage: External 438 * 439 * </ini> 440 */ 441 #define CFG_PMO_PWR_FAILURE CFG_INI_UINT("g_auto_detect_power_failure_mode", \ 442 PMO_FW_TO_CRASH_ON_PWR_FAILURE, \ 443 PMO_AUTO_PWR_FAILURE_DETECT_DISABLE, \ 444 PMO_FW_TO_CRASH_ON_PWR_FAILURE, \ 445 CFG_VALUE_OR_DEFAULT, \ 446 "Auto detect power save failure mode") 447 448 /* 449 * <ini> 450 * gEnableSapSuspend - Enable/disable SAP Suspend 451 * @Min: 0 452 * @Max: 1 453 * @Default: 0 454 * 455 * 456 * Related: None 457 * 458 * Supported Feature: SAP 459 * 460 * Usage: External 461 * 462 * </ini> 463 */ 464 #define CFG_ENABLE_SAP_SUSPEND CFG_INI_BOOL( \ 465 "gEnableSapSuspend", \ 466 1, \ 467 "Enable/disable SAP Suspend") 468 469 /* 470 * <ini> 471 * g_wow_data_inactivity_timeout - Data activity timeout in wow mode. 472 * @Min: 1 473 * @Max: 255 474 * @Default: 50 475 * 476 * This ini is used to set data inactivity timeout in wow mode and 477 * the value is honored in firmware when User defined OPM is set 478 * 479 * Supported Feature: inactivity timeout in wow mode 480 * 481 * Usage: External 482 * 483 * </ini> 484 */ 485 #define CFG_PMO_WOW_DATA_INACTIVITY_TIMEOUT CFG_INI_UINT( \ 486 "g_wow_data_inactivity_timeout", \ 487 1, \ 488 255, \ 489 50, \ 490 CFG_VALUE_OR_DEFAULT, \ 491 "Data activity timeout in wow mode") 492 /* 493 * <ini> 494 * g_wow_spec_wake_interval - OPM Speculative wake interval in wow mode. 495 * @Min: 0 496 * @Max: 255 497 * @Default: 0 498 * 499 * This ini is used to set OPM speculative wake interval in wow mode and 500 * the value is honored in firmware when User defined OPM is set 501 * 502 * Supported Feature: OPM Speculative wake interval in wow mode 503 * 504 * Usage: External 505 * 506 * </ini> 507 */ 508 #define CFG_PMO_WOW_SPEC_WAKE_INTERVAL CFG_INI_UINT( \ 509 "g_wow_spec_wake_interval", \ 510 0, \ 511 255, \ 512 0, \ 513 CFG_VALUE_OR_DEFAULT, \ 514 "Speculative wake interval in wow mode") 515 /* 516 * <ini> 517 * gRArateLimitInterval - RA rate limit interval 518 * @Min: 60 519 * @Max: 3600 520 * @Default: 60 521 * This ini is used to set RA rate limit interval. 522 * 523 * Usage: External 524 * 525 * </ini> 526 */ 527 #define CFG_RA_RATE_LIMIT_INTERVAL CFG_INI_UINT( \ 528 "gRArateLimitInterval", \ 529 60, \ 530 3600, \ 531 60, \ 532 CFG_VALUE_OR_DEFAULT, \ 533 "RA rate limit interval") 534 535 /* 536 * <ini> 537 * enable_bus_suspend_in_sap_mode - enable PCIe bus suspend as part of 538 * platform system suspend for SAP with one or more clients connected 539 * @Min: 0 540 * @Max: 1 541 * @Default: 1 542 * 543 * This ini is used to PCIe bus suspend as part of platform system suspend for 544 * SAP with one or more clients connected 545 * 546 * 0: PCIe Bus suspend is not supported in SAP mode with one or more clients 547 * connected 548 * 1: PCIe Bus suspend is supported in SAP mode with one or more clients 549 * connected 550 * Related: SAP clients connected bus suspend(D3 WoW) is only supported 551 * when IPA is disabled 552 * 553 * Supported Feature: Power Save 554 * 555 * Usage: Internal 556 * 557 * </ini> 558 */ 559 #define CFG_ENABLE_BUS_SUSPEND_IN_SAP_MODE CFG_INI_BOOL( \ 560 "enable_bus_suspend_in_sap_mode", \ 561 1, \ 562 "This ini is used to enable bus suspend in SAP mode") 563 564 /* 565 * <ini> 566 * enable_bus_suspend_in_go_mode - enable PCIe bus suspend as part of 567 * platform system suspend for P2PGO with one or more clients connected 568 * @Min: 0 569 * @Max: 1 570 * @Default: 1 571 * 572 * This ini is used to PCIe bus suspend as part of platform system suspend for 573 * P2PGO with one or more clients connected 574 * 575 * 0: PCIe Bus suspend is not supported in P2PGO mode with one or more clients 576 * connected 577 * 1: PCIe Bus suspend is supported in P2PGO mode with one or more clients 578 * connected 579 * Related: P2P GO clients connected bus suspend(D3 WoW) is only supported 580 * when IPA is disabled 581 * 582 * Supported Feature: Power Save 583 * 584 * Usage: Internal 585 * 586 * </ini> 587 */ 588 #define CFG_ENABLE_BUS_SUSPEND_IN_GO_MODE CFG_INI_BOOL( \ 589 "enable_bus_suspend_in_go_mode", \ 590 1, \ 591 "This ini is used to enable bus suspend in P2PGO mode") 592 593 /* 594 * <ini> 595 * igmp_version_support - Configure igmp version 596 * @Min: 0x00000000 597 * @Max: 0x7 598 * @Default: 0x7 599 * 600 * This ini is used to configure version while offloading igmp 601 * 602 * Bit 0: support igmp version 1 603 * Bit 1: support igmp version 2 604 * Bit 2: support igmp version 3 605 */ 606 #define CFG_IGMP_VERSION_SUPPORT CFG_INI_UINT( \ 607 "igmp_version_support", \ 608 0x00000000, \ 609 0x7, \ 610 0x7, \ 611 CFG_VALUE_OR_DEFAULT, \ 612 "configure igmp offload support version") 613 614 /* 615 * <ini> 616 * disconnect_sap_tdls_in_wow - disconnect sap tdls in wow 617 * @Min: 0 618 * @Max: 1 619 * @Default: 0 620 * 621 * Due to the limitation on third party platform, add ini to take 622 * special care of the below wow case to avoid fw crash. 623 * The sap/p2p_go shall kick out all the connected sta/p2p_gc and 624 * then go to suspend considering d0wow/d3wow is not supported. 625 * Teardown tdls link proactively since auto sleep mechanism not 626 * supported. 627 * 628 * Usage: External 629 * 630 * </ini> 631 */ 632 #define CFG_DISCONNECT_SAP_TDLS_IN_WOW CFG_INI_BOOL( \ 633 "disconnect_sap_tdls_in_wow", \ 634 0, \ 635 "disconnect sap tdls in wow") 636 637 /* 638 * <ini> 639 * action_on_page_fault - Host action on page fault wakeup event 640 * @Min: PMO_PF_HOST_ACTION_NO_OP 641 * @Max: PMO_PF_HOST_ACTION_MAX - 1 642 * @Default: PMO_PF_HOST_ACTION_NO_OP 643 * 644 * This INI is used to determine host behavior on WOW_REASON_PAGE_FAULT wakeup 645 * event. 646 * For ex: If action is to trigger SSR, min_pagefault_wakeups_for_action = 30, 647 * interval_for_pagefault_wakeup_counts = 180000 (3 mins) and 648 * ssr_frequency_on_pagefault = 3600000 (1hr), in this case host will trigger 649 * the SSR if it receives 30 wakeups because of pagefaults in 3 mins, host will 650 * trigger SSR only once in 1 hr. Once the SSR is triggered, host will not 651 * trigger next SSR for next 1 hr even if it receives 30 wakeups from fw because 652 * of pagefaults. This 1 hr time is getting monitored from last SSR. 653 * 654 * </ini> 655 */ 656 #define CFG_HOST_ACTION_ON_PAGEFAULT CFG_INI_UINT( \ 657 "action_on_page_fault", \ 658 PMO_PF_HOST_ACTION_NO_OP, \ 659 PMO_PF_HOST_ACTION_MAX - 1, \ 660 PMO_PF_HOST_ACTION_NO_OP, \ 661 CFG_VALUE_OR_DEFAULT, \ 662 "Host action on FW pagefault event") 663 664 /* 665 * <ini> 666 * min_pagefault_wakeups_for_action - Min number of pagefaults wakeups to 667 * initiate host action. 668 * @Min: 2 669 * @Max: 255 670 * @Default: 30 671 * 672 * This ini is used to get the count of max pagefault wakeups to reach before 673 * host takes action. 674 * If the count is reached within the wakeup time interval host will either 675 * trigger SSR (within the limits of SSR trigger freq) or may notify APPS or 676 * ignore if no action is set. 677 * For ex: If SSR on pagefault = 1, min_pagefault_wakeups_for_action = 30, 678 * interval_for_pagefault_wakeup_counts = 180000 (3 mins) and 679 * ssr_frequency_on_pagefault = 3600000 (1hr), in this case host will trigger 680 * the SSR if it receives 30 wakeups because of pagefaults in 3 mins, host will 681 * trigger SSR only once in 1 hr. Once the SSR is triggered, host will not 682 * trigger next SSR for next 1 hr even if it receives 30 wakeups from fw because 683 * of pagefaults. This 1 hr time is getting monitored from last SSR. 684 */ 685 #define CFG_MIN_PAGEFAULT_WAKEUPS_FOR_ACTION CFG_INI_UINT( \ 686 "min_pagefault_wakeups_for_action", \ 687 2, \ 688 255, \ 689 30, \ 690 CFG_VALUE_OR_DEFAULT, \ 691 "Max number of pagefaults wakeups to trigger SSR") 692 693 /* 694 * <ini> 695 * interval_for_pagefault_wakeup_counts - Time in ms in which 696 * min_pagefault_wakeups_for_action needs to be monitored 697 * @Min: 60000 (1min) 698 * @Max: 18000000 (5hrs) 699 * @Default: 180000 (3 mins) 700 * 701 * This ini define time in ms in which min_pagefault_wakeups_for_host action 702 * needs to be monitored. If in interval_for_pagefault_wakeup_counts ms, 703 * min_pagefault_wakeups_for_action is reached host will trigger the action. 704 * SSR is triggered only once in ssr_frequency_on_pagefault interval. 705 * For ex: If SSR on pagefault = 1, min_pagefault_wakeups_for_action = 30, 706 * interval_for_pagefault_wakeup_counts = 180000 (3 mins) and 707 * ssr_frequency_on_pagefault = 3600000 (1hr), in this case host will trigger 708 * the SSR if it receives 30 wakeups because of pagefaults in 3 mins, host will 709 * trigger SSR only once in 1 hr. Once the SSR is triggered, host will not 710 * trigger next SSR for next 1 hr even if it receives 30 wakeups from fw because 711 * of pagefaults. This 1 hr time is getting monitored from last SSR. 712 */ 713 #define CFG_INTERVAL_FOR_PAGEFAULT_WAKEUP_COUNT CFG_INI_UINT( \ 714 "interval_for_pagefault_wakeup_counts", \ 715 60000, \ 716 18000000, \ 717 180000, \ 718 CFG_VALUE_OR_DEFAULT, \ 719 "Interval in which min_pagefault_wakeups_for_ssr needs to be monitored") 720 721 /* 722 * <ini> 723 * ssr_frequency_on_pagefault - Time in ms in which host needs to trigger the 724 * next SSR 725 * @Min: 60000 726 * @Max: 7200000 727 * @Default: 3600000 (1 hr) 728 * 729 * This ini define time in ms in which next SSR needs to be triggered if 730 * min_pagefault_wakeups_for_action is reached in 731 * interval_for_pagefault_wakeup_counts time. 732 * INIs max_pagefault_wakeups_for_ssr, interval_for_pagefault_wakeup_counts and 733 * ssr_frequency_on_pagefault needs to be considered together. 734 * For ex: If enable_ssr_on_page_fault = 1, min_pagefault_wakeups_for_ssr = 30, 735 * interval_for_pagefault_wakeup_counts = 180000 (3 mins) and 736 * ssr_frequency_on_pagefault = 3600000 (1hr), in this case host will trigger 737 * the SSR if it receives 30 wakeups because of pagefaults in 3 mins, host will 738 * trigger SSR only once in 1 hr. Once the SSR is triggered, host will not 739 * trigger next SSR for next 1 hr even if it receives 30 wakeups from fw because 740 * of pagefaults. This 1 hr time is getting monitored from last SSR. 741 */ 742 #define CFG_SSR_FREQUENCY_ON_PAGEFAULT CFG_INI_UINT( \ 743 "ssr_frequency_on_pagefault", \ 744 60000, \ 745 7200000, \ 746 3600000, \ 747 CFG_VALUE_OR_DEFAULT, \ 748 "Interval in which min_pagefault_wakeups_for_ssr needs to be monitored") 749 750 /* 751 * <ini> 752 * gEnableIcmpOffload - Enable/disable ICMP offload 753 * @Min: 0 754 * @Max: 1 755 * @Default: 0 756 * 757 * This ini is used to enable/disable firmware's capability of sending ICMP 758 * response to clients. 759 * 760 * Supported Feature: STA 761 * 762 * Usage: External 763 * 764 * </ini> 765 */ 766 #define CFG_ENABLE_ICMP_OFFLOAD CFG_INI_BOOL( \ 767 "gEnableIcmpOffload", \ 768 0, \ 769 "enable/disable ICMP offload") 770 771 #define CFG_PMO_COMMON_ALL \ 772 CFG(CFG_ENABLE_SAP_SUSPEND) \ 773 CFG(CFG_PMO_ENABLE_HOST_ARPOFFLOAD) \ 774 CFG(CFG_PMO_HW_FILTER_MODE) \ 775 CFG(CFG_PMO_ENABLE_HOST_SSDP) \ 776 CFG(CFG_PMO_ENABLE_HOST_NSOFFLOAD) \ 777 CFG(CFG_PMO_ENABLE_IGMP_OFFLOAD) \ 778 CFG(CFG_PMO_ENABLE_DYNAMIC_DTIM) \ 779 CFG(CFG_PMO_ENABLE_MODULATED_DTIM) \ 780 CFG(CFG_PMO_ENABLE_FORCED_DTIM) \ 781 CFG(CFG_PMO_MC_ADDR_LIST_ENABLE) \ 782 CFG(CFG_PMO_POWERSAVE_MODE) \ 783 CFG(CFG_PMO_MAX_PS_POLL) \ 784 CFG(CFG_PMO_WOW_ENABLE) \ 785 CFG(CFG_PMO_SUSPEND_MODE) \ 786 CFG(CFG_PMO_ACTIVE_MODE) \ 787 CFG(CFG_PMO_PWR_FAILURE) \ 788 CFG(CFG_PMO_WOW_DATA_INACTIVITY_TIMEOUT) \ 789 CFG(CFG_PMO_WOW_SPEC_WAKE_INTERVAL) \ 790 CFG(CFG_RA_RATE_LIMIT_INTERVAL) \ 791 CFG(CFG_PMO_MOD_DTIM_ON_SYS_SUSPEND) \ 792 CFG(CFG_ENABLE_BUS_SUSPEND_IN_SAP_MODE) \ 793 CFG(CFG_ENABLE_BUS_SUSPEND_IN_GO_MODE)\ 794 CFG(CFG_DISCONNECT_SAP_TDLS_IN_WOW) \ 795 CFG(CFG_IGMP_VERSION_SUPPORT) \ 796 CFG(CFG_ENABLE_ICMP_OFFLOAD) \ 797 CFG(CFG_HOST_ACTION_ON_PAGEFAULT) \ 798 CFG(CFG_MIN_PAGEFAULT_WAKEUPS_FOR_ACTION) \ 799 CFG(CFG_INTERVAL_FOR_PAGEFAULT_WAKEUP_COUNT) \ 800 CFG(CFG_SSR_FREQUENCY_ON_PAGEFAULT) 801 802 #endif /* WLAN_PMO_COMMON_CFG_H__ */ 803