1 /* 2 * Copyright (c) 2013-2014 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 #ifndef _WLAN_PS_WOW_DIAG_H_ 20 #define _WLAN_PS_WOW_DIAG_H_ 21 22 #include "host_diag_core_event.h" 23 #include "host_diag_core_log.h" 24 25 #ifdef FEATURE_WLAN_DIAG_SUPPORT 26 27 typedef enum { 28 WLAN_BMPS_ENTER_REQ = 0, 29 WLAN_UAPSD_START_REQ = 1, 30 WLAN_UAPSD_STOP_REQ = 2, 31 WLAN_ENTER_STANDBY_REQ = 3, 32 WLAN_ENTER_DEEP_SLEEP_REQ = 4, 33 WLAN_START_BMPS_AUTO_TIMER_REQ = 5, 34 WLAN_STOP_BMPS_AUTO_TIMER_REQ = 6, 35 WLAN_ENTER_FULL_POWER_REQ = 7, 36 WLAN_PMC_CURRENT_STATE = 8, 37 WLAN_PS_MODE_ENABLE_REQ = 9, 38 WLAN_PS_MODE_DISABLE_REQ = 10, 39 WLAN_WINMOB_D_POWER_STATE = 11, 40 WLAN_BMPS_DTIM_PERIOD = 12, 41 WLAN_BMPS_FINAL_LI = 13, 42 WLAN_BMPS_SET_CONFIG = 14, 43 44 } wlan_ps_evt_subtype_t; 45 46 /* maps directly to eRequestFullPowerReason */ 47 typedef enum { 48 /* PE received a MAX_MISSED_BEACON_IND */ 49 WLAN_MISSED_BEACON_IND_RCVD, 50 /* PE received a SIR_HAL_BMPS_STATUS_IND */ 51 WLAN_BMPS_STATUS_IND_RCVD, 52 /* BMPS mode was disabled by HDD in SME */ 53 WLAN_BMPS_MODE_DISABLED, 54 /* Link has been disconnected requested by HDD */ 55 WLAN_LINK_DISCONNECTED_BY_HDD, 56 /* Disconnect due to linklost or requested by peer */ 57 WLAN_LINK_DISCONNECTED_BY_OTHER, 58 /* HDD request full power for some reason */ 59 WLAN_FULL_PWR_NEEDED_BY_HDD, 60 /* BAP request full power for BT_AMP */ 61 WLAN_FULL_PWR_NEEDED_BY_BAP, 62 /* CSR requests full power */ 63 WLAN_FULL_PWR_NEEDED_BY_CSR, 64 /* QOS requests full power */ 65 WLAN_FULL_PWR_NEEDED_BY_QOS, 66 /* No specific reason. General reason code */ 67 WLAN_REASON_OTHER 68 } wlan_ps_full_power_request_reason_t; 69 70 /* maps directly to ePmcState */ 71 typedef enum { 72 WLAN_PMC_STOPPED, /* PMC is stopped */ 73 WLAN_PMC_FULL_POWER, /* full power */ 74 WLAN_PMC_LOW_POWER, /* low power */ 75 WLAN_PMC_REQUEST_BMPS, /* requesting BMPS */ 76 WLAN_PMC_BMPS, /* in BMPS */ 77 WLAN_PMC_REQUEST_FULL_POWER, /* requesting full power */ 78 WLAN_PMC_REQUEST_START_UAPSD, /* requesting Start UAPSD */ 79 WLAN_PMC_REQUEST_STOP_UAPSD, /* requesting Stop UAPSD */ 80 WLAN_PMC_UAPSD, /* in UAPSD */ 81 WLAN_PMC_REQUEST_STANDBY, /* requesting standby mode */ 82 WLAN_PMC_STANDBY, /* in standby mode */ 83 WLAN_PMC_REQUEST_ENTER_WOWL, /* requesting enter WOWL */ 84 WLAN_PMC_REQUEST_EXIT_WOWL, /* requesting exit WOWL */ 85 WLAN_PMC_WOWL /* Chip in WOWL mode */ 86 } wlan_ps_pmc_current_state_t; 87 88 /* maps directly to ePmcPowerSavingMode */ 89 typedef enum { 90 WLAN_IDLE_MODE_POWER_SAVE, /* Idle Mode Power Save (IMPS) */ 91 WLAN_BEACON_MODE_POWER_SAVE, /* Beacon Mode Power Save (BMPS) */ 92 WLAN_SPATIAL_MULTIPLEX_POWER_SAVE, /* Spatial Multiplexing Power Save */ 93 WLAN_UAPSD_MODE_POWER_SAVE, /* Unscheduled Auto PS Delivery Mode */ 94 WLAN_STANDBY_MODE_POWER_SAVE, /* Standby Power Save Mode */ 95 WLAN_WOWL_MODE_POWER_SAVE /* Wake-on-Wireless Power Save Mode */ 96 } wlan_ps_enable_disable_ps_mode_t; 97 98 typedef enum { 99 WLAN_D0, 100 WLAN_D1, 101 WLAN_D2, 102 WLAN_D3, 103 WLAN_D4 104 } wlan_ps_winmob_d_power_state_t; 105 106 typedef enum { 107 WLAN_WOW_ENTER_REQ = 0, 108 WLAN_WOW_EXIT_REQ = 1, 109 WLAN_WOW_DEL_PTRN_REQ = 2, 110 WLAN_WOW_WAKEUP = 3 111 } wlan_ps_wow_evt_subtype_t; 112 113 typedef enum { 114 WLAN_WOW_TYPE_NONE, 115 WLAN_WOW_TYPE_MAGIC_PKT_ONLY, 116 WLAN_WOW_TYPE_PTRN_BYTE_MATCH_ONLY, 117 WLAN_WOW_TYPE_MAGIC_PKT_PTRN_BYTE_MATCH, 118 } wlan_ps_wow_type_t; 119 120 typedef enum { 121 WLAN_WOW_MAGIC_PKT_MATCH, 122 WLAN_WOW_PTRN_BYTE_MATCH 123 } wlan_ps_wos_wakeup_cause_t; 124 125 #endif /* FEATURE_WLAN_DIAG_SUPPORT */ 126 127 #endif /* _WLAN_PS_WOW_DIAG_H_ */ 128