aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/vithar/osk/include/mali_osk_power.h
blob: da329530648b5c82c9fa066cc5c0eb91515d64ac (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/*
 *
 * (C) COPYRIGHT 2010-2011 ARM Limited. All rights reserved.
 *
 * This program is free software and is provided to you under the terms of the GNU General Public License version 2
 * as published by the Free Software Foundation, and any use by you of this program is subject to the terms of such GNU licence.
 * 
 * A copy of the licence is included with the program, and can also be obtained from Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 * 
 */



#ifndef _OSK_POWER_H_
#define _OSK_POWER_H_

/**
 * @addtogroup base_api
 * @{
 */

/**
 * @addtogroup base_osk_api
 * @{
 */

/**
 * @addtogroup oskpower Power management
 *  
 * Some OS need to approve power state changes to a device, either to
 * control power to a bus the device resides on, or to give the OS
 * power manager the chance to see if the power state change is allowed
 * for the current OS power management policy.
 *
 * @{
 */

/**
 * @brief Request and perform a change in the power state of the device
 *
 * A function to request the OS to perform a change the power state of a device. This
 * function returns when the power state change has completed.
 *
 * This allows the OS to control the power for the bus on which the GPU device resides,
 * and the OS power manager can verify changing the power state is allowed according to
 * its own power management policy (the OS may have been informed that an application will 
 * make heavy use of the GPU soon). As a result of the request the OS is likely to 
 * request the GPU device driver to actually perform the power state change (in Windows 
 * CE for instance, the OS power manager will issue an IOCTL_POWER_SET to actually make 
 * the GPU device change the power state). 
 *
 * The result of the request is either success (the GPU device driver has successfully 
 * completed the power state change for the GPU device), refused (the OS didn't allow 
 * the power state change), or failure (the GPU device driver encountered an error 
 * changing the power state).
 *
 * @param[in,out] info  OS specific information necessary to control power to the device
 * @param[in] state     power state to switch to (off, idle, or active)
 * @return OSK_POWER_REQUEST_FINISHED when the driver successfully completed the power
 * state change for the device, OSK_POWER_REQUEST_FAILED when it failed, or
 * OSK_POWER_REQUEST_REFUSED when the OS didn't allow the power state change.
 */
OSK_STATIC_INLINE osk_power_request_result osk_power_request(osk_power_info *info, osk_power_state state) CHECK_RESULT;

/* @} */ /* end group oskpower */

/** @} */ /* end group base_osk_api */

/** @} */ /* end group base_api */

/* pull in the arch header with the implementation  */
#include <osk/mali_osk_arch_power.h>

#endif /* _OSK_POWER_H_ */