1/* 2 * PowerMgr_API.h 3 * 4 * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved. 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 11 * * Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * * Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in 15 * the documentation and/or other materials provided with the 16 * distribution. 17 * * Neither the name Texas Instruments nor the names of its 18 * contributors may be used to endorse or promote products derived 19 * from this software without specific prior written permission. 20 * 21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 24 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 25 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 26 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 27 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 28 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 29 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 30 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 */ 33 34/** \file PowerMgr_API.h 35 * \brief This is the Power Manager module API. 36 * \ 37 */ 38 39/**************************************************************************** 40 * * 41 * MODULE: Power Manager * 42 * PURPOSE: Power Manager Module API * 43 * * 44 ****************************************************************************/ 45 46#ifndef _POWER_MGR_API_H_ 47#define _POWER_MGR_API_H_ 48 49#include "tidef.h" 50#include "paramOut.h" 51#include "DrvMainModules.h" 52 53/***************************************************************************** 54 ** Constants ** 55 *****************************************************************************/ 56 57 58/***************************************************************************** 59 ** Enumerations ** 60 *****************************************************************************/ 61 62 63/***************************************************************************** 64 ** Typedefs ** 65 *****************************************************************************/ 66 67 68/***************************************************************************** 69 ** Structures ** 70 *****************************************************************************/ 71 72 73/***************************************************************************** 74 ** External data definitions ** 75 *****************************************************************************/ 76 77 78/***************************************************************************** 79 ** External functions definitions ** 80 *****************************************************************************/ 81 82 83/***************************************************************************** 84 ** Public Function prototypes ** 85 *****************************************************************************/ 86 87/** 88 * \ 89 * \date 24-Oct-2005\n 90 * \brief Creates the object of the power Manager. 91 * 92 * Function Scope \e Public.\n 93 * Parameters:\n 94 * 1) TI_HANDLE - handle to the OS.\n 95 * Return Value: TI_HANDLE - handle to the PowerMgr object.\n 96 */ 97TI_HANDLE PowerMgr_create(TI_HANDLE theOsHandle); 98 99/** 100 * \ 101 * \date 24-Oct-2005\n 102 * \brief Destroy the object of the power Manager. 103 * 104 * Function Scope \e Public.\n 105 * Parameters:\n 106 * 1) TI_HANDLE - handle to the PowerMgr object.\n 107 * Return Value: TI_STATUS - TI_OK on success else TI_NOK.\n 108 */ 109TI_STATUS PowerMgr_destroy(TI_HANDLE thePowerMgrHandle); 110 111/** 112 * \ 113 * \date 24-Oct-2005\n 114 * \brief Initialization of the PowerMgr module. 115 * 116 * Function Scope \e Public.\n 117 * Parameters: pStadHandles - The driver modules handles \n 118 * Return Value: void \n 119 */ 120void PowerMgr_init (TStadHandlesList *pStadHandles); 121 122TI_STATUS PowerMgr_SetDefaults (TI_HANDLE hPowerMgr, PowerMgrInitParams_t* pPowerMgrInitParams); 123 124/** 125 * \ 126 * \date 24-Oct-2005\n 127 * \brief Start the power save algorithm of the driver and also the 802.11 PS. 128 * 129 * Function Scope \e Public.\n 130 * Parameters:\n 131 * 1) TI_HANDLE - handle to the PowerMgr object.\n 132 * Return Value: TI_STATUS - TI_OK on success else TI_NOK.\n 133 * \b Description:\n 134 * PsEnable = true, and decide on the proper power mode. 135 */ 136TI_STATUS PowerMgr_startPS(TI_HANDLE thePowerMgrHandle); 137 138/** 139 * \ 140 * \date 24-Oct-2005\n 141 * \brief stop the power save algorithm of the driver and also the 802.11 PS. 142 * 143 * Function Scope \e Public.\n 144 * Parameters:\n 145 * 1) TI_HANDLE - handle to the PowerMgr object.\n 146 * 2) TI_BOOL - indicates if this is roaming (FALSE) or disconnect (TRUE) 147 * Return Value: TI_STATUS - TI_OK on success else TI_NOK.\n 148 * \b Description:\n 149 * PsEnable = false, and set the power mode to active. 150 */ 151TI_STATUS PowerMgr_stopPS(TI_HANDLE thePowerMgrHandle, TI_BOOL bDisconnect); 152 153/** 154 * \ 155 * \date 24-Oct-2005\n 156 * \brief returns the 802.11 power save status (enable / disable). 157 * 158 * Function Scope \e Public.\n 159 * Parameters:\n 160 * 1) TI_HANDLE - handle to the PowerMgr object.\n 161 * Return Value: TI_BOOL - TI_TRUE if enable else TI_FALSE.\n 162*/ 163TI_BOOL PowerMgr_getPsStatus(TI_HANDLE thePowerMgrHandle); 164 165 166 167/** 168 * \ 169 * \date 24-Oct-2005\n 170 * \brief Configure of the PowerMode (auto / active / short doze / long doze). 171 * 172 * Function Scope \e Public.\n 173 * Parameters:\n 174 * 1) TI_HANDLE - handle to the PowerMgr object.\n 175 * 2) PowerMgr_PowerMode_e - the requested power mode (auto / active / short doze / long doze). 176 * Return Value: TI_STATUS - TI_OK on success else TI_NOK.\n 177 * \b Description:\n 178 * desiredPowerModeProfile = PowerMode input parameter, and set the proper power mode. 179*/ 180TI_STATUS PowerMgr_setPowerMode(TI_HANDLE thePowerMgrHandle); 181 182 183/** 184 * \ 185 * \date 24-Oct-2005\n 186 * \brief Get the current PowerMode of the PowerMgr module. 187 * 188 * Function Scope \e Public.\n 189 * Parameters:\n 190 * 1) TI_HANDLE - handle to the PowerMgr object.\n 191 * Return Value: PowerMgr_PowerMode_e .\n 192 */ 193PowerMgr_PowerMode_e PowerMgr_getPowerMode(TI_HANDLE thePowerMgrHandle); 194 195TI_STATUS powerMgr_getParam(TI_HANDLE thePowerMgrHandle, 196 paramInfo_t *theParamP); 197TI_STATUS powerMgr_setParam(TI_HANDLE thePowerMgrHandle, 198 paramInfo_t *theParamP); 199 200 201/** 202 * \ 203 * \date 20-July-2004\n 204 * \brief print configuration of the PowerMgr object - use for debug! 205 * 206 * Function Scope \e Public.\n 207 * Parameters:\n 208 * 1) TI_HANDLE - handle to the PowerMgr object.\n 209 * Return Value: void.\n 210 */ 211void PowerMgr_printObject(TI_HANDLE thePowerMgrHandle); 212 213/** 214 * \date 10-April-2007\n 215 * \brief reset PM upon recovery event. 216 * 217 * Function Scope \e Public.\n 218 * Parameters:\n 219 * 1) TI_HANDLE - handle to the PowerMgr object.\n 220 * Return Value: void.\n 221 */ 222 223TI_STATUS PowerMgr_notifyFWReset(TI_HANDLE hPowerMgr); 224 225TI_BOOL PowerMgr_getReAuthActivePriority(TI_HANDLE thePowerMgrHandle); 226 227#endif /*_POWER_MGR_API_H_*/ 228