Power Management/pm_policy_chipset_api.h
author Arnaud Lenoir
Wed, 11 Aug 2010 19:57:11 +0100
changeset 20 4a8d14a1a8ca
parent 3 89965ac1daf8
permissions -rw-r--r--
FYI - READ ONLY - contact arnaudl@symbian.org for any changes you want.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
     1
/*
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
     2
  pm_policy_chipset_api.h
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
     3
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
     4
  Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
     5
  All rights reserved.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
     6
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
     7
  This program and the accompanying materials are made available 
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
     8
  under the terms of the Eclipse Public License v1.0 which accompanies 
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
     9
  this distribution, and is available at 
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    10
  http://www.eclipse.org/legal/epl-v10.html
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    11
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    12
  Initial Contributors:
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    13
  Nokia Corporation - initial contribution.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    14
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    15
  Contributors:
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    16
*/
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    17
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    18
/** @file
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    19
@brief PM Policy Chipset API H
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    20
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    21
The purpose of this interface is to enable Nokia to affect power management
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    22
functionalities implemented below the Chipset API.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    23
This interface is meant to be used only by Symbian kernel side clients.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    24
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    25
@publishedDeviceAbstraction
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    26
*/
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    27
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    28
#ifndef PM_POLICY_CHIPSET_API_H
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    29
#define PM_POLICY_CHIPSET_API_H
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    30
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    31
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    32
// Include files
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    33
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    34
#include <kern_priv.h>
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    35
#include "pm_definitions_chipset_api.h"
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    36
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    37
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    38
// Class declaration
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    39
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    40
/**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    41
@brief Class description
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    42
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    43
This class contains static methods to set and get certain power management
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    44
policy parameters. There are no data members.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    45
*/
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    46
class PMPolicy
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    47
    {
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    48
    public:
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    49
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    50
        This enumeration is purposed to include the list of known load
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    51
        prediction algorithms. It is mainly used for enquiring about current
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    52
        algorithm and for setting and getting their parameters if applicable.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    53
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    54
        enum TAlgorithm
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    55
            {
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    56
            EAlgoAll,       /**< Any algorithm that is in use   */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    57
            EAlgoAVGn,      /**< Weighted average of past loads */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    58
            EAlgoMAW,       /**< Moving average workload        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    59
            EAlgoLMS,       /**< Least mean square              */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    60
            EAlgoUnknown    /**< Any other algorithm            */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    61
            };
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    62
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    63
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    64
        The purpose of this enumeration is to specify the type of parameters
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    65
        that can be changed for one or more of the load prediction algorithms.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    66
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    67
        enum TParam
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    68
            {
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    69
            EParamSampleCount = 1   /**< number of history samples  */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    70
            };
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    71
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    72
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    73
        Method to set the load prediction trigger delay. When the predicted load
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    74
        is changed, it waits the specific amount of time before triggering the
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    75
        OPP change. If the load changes back to the previous OPP window during
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    76
        the wait period, then no OPP change will be done.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    77
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    78
        @param aRes The performance resource
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    79
        @param aDelayInc Delay to be applied when the load is increasing
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    80
        @param aDelayDec Delay to be applied when the load is decreasing
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    81
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    82
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    83
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    84
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    85
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    86
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    87
        IMPORT_C static TInt SetLoadPredTrigDelay(TPerfRes aRes, TInt aDelayInc,
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    88
            TInt aDelayDec);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    89
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    90
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    91
        Method to get the current trigger delay setting value of a particular
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    92
        load monitor.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    93
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    94
        @param aRes The performance resource
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    95
        @param aDelayInc Current delay setting when the load is increasing
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    96
        @param aDelayDec Current delay setting when the load is decreasing
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    97
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    98
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
    99
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   100
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   101
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   102
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   103
        IMPORT_C static TInt GetLoadPredTrigDelay(TPerfRes aRes,
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   104
            TInt& aDelayInc, TInt& aDelayDec);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   105
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   106
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   107
        Method to lock the load monitor trigger delay. If it is already in
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   108
        locked state, this call is ignored.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   109
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   110
        @param aRes The performance resource
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   111
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   112
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   113
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   114
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   115
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   116
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   117
        IMPORT_C static TInt LockLoadPredTrigDelay(TPerfRes aRes);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   118
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   119
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   120
        Method to unlock the load monitor trigger delay. If it is not in locked
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   121
        state, this call is ignored.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   122
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   123
        @param aRes The performance resource
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   124
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   125
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   126
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   127
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   128
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   129
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   130
        IMPORT_C static TInt UnlockLoadPredTrigDelay(TPerfRes aRes);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   131
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   132
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   133
        Method to set the WP tick period
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   134
        @param aMon Monitor id
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   135
        @param aPeriod New period value to be set (in milliseconds)
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   136
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   137
        error handling specification
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   138
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   139
        IMPORT_C static TInt SetWpTickPeriod(TDvfsMonitor aMon, TUint aPeriod);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   140
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   141
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   142
        Method to get the WP tick period
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   143
        @param aMon Monitor id
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   144
        @param aPeriod [Out] Current period value
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   145
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   146
        error handling specification
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   147
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   148
        IMPORT_C static TInt GetWpTickPeriod(TDvfsMonitor aMon, TUint& aPeriod);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   149
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   150
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   151
        Method to lock the WP tick period setting. If it is already locked, this
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   152
        call is ignored
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   153
        @param aMon Monitor id
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   154
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   155
        error handling specification
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   156
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   157
        IMPORT_C static TInt LockWpTickPeriod(TDvfsMonitor aMon);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   158
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   159
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   160
        Method to unlock the WP tick period setting. If it is not locked, this
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   161
        call is ignored
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   162
        @param aMon Monitor id
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   163
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   164
        error handling specification
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   165
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   166
        IMPORT_C static TInt UnlockWpTickPeriod(TDvfsMonitor aMon);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   167
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   168
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   169
        Method to set the WP window width
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   170
        @param aMon Monitor id
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   171
        @param aWidth The WP window width to set (in number of prediction ticks)
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   172
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   173
        error handling specification
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   174
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   175
        IMPORT_C static TInt SetWpWindowWidth(TDvfsMonitor aMon, TUint aWidth);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   176
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   177
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   178
        Method to get the WP window width
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   179
        @param aMon Monitor id
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   180
        @param aWidth [Out] The WP window width to get (in number of prediction ticks)
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   181
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   182
        error handling specification
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   183
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   184
        IMPORT_C static TInt GetWpWindowWidth(TDvfsMonitor aMon, TUint& aWidth);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   185
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   186
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   187
        Method to lock the WP window width. Does nothing if it is already locked
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   188
        @param aMon Monitor id
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   189
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   190
        error handling specification
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   191
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   192
        IMPORT_C static TInt LockWpWindowWidth(TDvfsMonitor aMon);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   193
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   194
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   195
        Method to unlock the WP window width. Does nothing if it is not locked
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   196
        @param aMon Monitor id
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   197
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   198
        error handling specification
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   199
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   200
        IMPORT_C static TInt UnlockWpWindowWidth(TDvfsMonitor aMon);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   201
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   202
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   203
        Method to get the current load prediction algorithm.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   204
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   205
        @param aMon The DVFS monitor
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   206
        @param aAlgo Current algorithm returned to the caller (out parameter)
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   207
        @param aCustom Any additional information (optional parameter).
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   208
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   209
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   210
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   211
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   212
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   213
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   214
        IMPORT_C static TInt GetCurrentAlgorithm(TDvfsMonitor aMon,
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   215
            TAlgorithm& aAlgo, TInt* aCustom = 0);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   216
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   217
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   218
        Method to set parameters to load monitor algorithm.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   219
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   220
        @param aMon The DVFS monitor
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   221
        @param aAlgo Algorithm whose parameter has to be changed.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   222
        @param aParam Algorithm parameter name.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   223
        @param aArg The parameter value.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   224
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   225
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   226
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   227
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   228
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   229
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   230
        IMPORT_C static TInt SetLoadMonitorParam(TDvfsMonitor aMon,
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   231
            TAlgorithm aAlgo, TParam aParam, TAny* aArg);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   232
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   233
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   234
        Method to retrieve existing parameters from load monitor algorithms.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   235
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   236
        @param aMon The DVFS monitor
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   237
        @param aAlgo Algorithm whose parameter has to be retrieved.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   238
        @param aParam Algorithm parameter name.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   239
        @param aArg Pointer to a location where the value must be stored. This
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   240
        can not be null (passing null value results in returning error code).
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   241
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   242
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   243
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   244
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   245
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   246
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   247
        IMPORT_C static TInt GetLoadMonitorParam(TDvfsMonitor aMon,
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   248
            TAlgorithm aAlgo, TParam aParam, TAny* aArg);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   249
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   250
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   251
        Locks the load monitor parameters. This lock should apply only to known
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   252
        parameters of known algorithms – those that are enumerated in this
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   253
        specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   254
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   255
        @param aMon The DVFS monitor
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   256
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   257
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   258
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   259
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   260
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   261
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   262
        IMPORT_C static TInt LockLoadMonitorParam(TDvfsMonitor aMon);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   263
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   264
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   265
        Unlocks the load monitor parameters.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   266
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   267
        @param aMon The DVFS monitor
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   268
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   269
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   270
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   271
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   272
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   273
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   274
        IMPORT_C static TInt UnlockLoadMonitorParam(TDvfsMonitor aMon);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   275
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   276
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   277
        Method to enable or disable a particular operation point.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   278
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   279
        @param aPerfRes Performance resource ID.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   280
        @param aOPP The operation point that is to be enable or disabled
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   281
        @param aEnable If ETrue is specified, the OPP is enabled and if EFalse
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   282
        is specified, then the OPP is disabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   283
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   284
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   285
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   286
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   287
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   288
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   289
        IMPORT_C static TInt SetOPPState(TPerfRes aPerfRes, TInt aOPP,
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   290
            TBool aEnable);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   291
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   292
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   293
        Method to set the status of a list of operation points.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   294
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   295
        @param aPerfRes Performance resource ID.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   296
        @param aOppState Array containing the operation point status to be set.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   297
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   298
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   299
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   300
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   301
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   302
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   303
        IMPORT_C static TInt SetOPPState(TPerfRes aPerfRes,
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   304
            RArray<TBool>& aOppState);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   305
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   306
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   307
        Method to get the current enabled/disabled status of a particular
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   308
        operation point. OPPs are specified in the same way as mentioned
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   309
        earlier.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   310
        Argument:
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   311
        @param aPerfRes Performance resource ID.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   312
        @param aOPP The operation point that is to be checked.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   313
        @param aEnable Status of the operation point returned to the caller.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   314
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   315
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   316
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   317
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   318
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   319
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   320
        IMPORT_C static TInt GetOPPState(TPerfRes aPerfRes, TInt aOPP,
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   321
            TBool& aEnable);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   322
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   323
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   324
        Method to get the full list of operation point enabled status.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   325
        Argument:
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   326
        @param aPerfRes Performance resource ID.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   327
        @param aOppState Array containing the operation point enabled status
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   328
        indexed by the operation point enumeration.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   329
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   330
        @return One of the system wide Symbian error codes according to the API
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   331
        error handling specification.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   332
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   333
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   334
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   335
        IMPORT_C static TInt GetOPPState(TPerfRes aPerfRes,
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   336
            RArray<TBool>& aOppState);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   337
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   338
        /**
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   339
        Method to pass context inputs to the vendor software.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   340
        Argument:
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   341
        @param aArg0 Argument 0
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   342
        @param aArg1 Argument 1
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   343
        @param aArg2 Argument 2
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   344
        @param aArg3 Argument 3
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   345
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   346
        @return None.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   347
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   348
        @pre Called from thread context with interrupts enabled.
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   349
        */
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   350
        IMPORT_C static void SetInput(TUint32 aArg0, TUint32 aArg1,
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   351
            TUint32 aArg2, TUint32 aArg3);
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   352
    };
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   353
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   354
89965ac1daf8 New SHAI contributions for Power Management
arunabha
parents:
diff changeset
   355
#endif // PM_POLICY_CHIPSET_API_H