xref: /OK3568_Linux_fs/kernel/drivers/gpu/arm/midgard/backend/gpu/mali_kbase_pm_demand.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /*
2  *
3  * (C) COPYRIGHT 2011-2015 ARM Limited. All rights reserved.
4  *
5  * This program is free software and is provided to you under the terms of the
6  * GNU General Public License version 2 as published by the Free Software
7  * Foundation, and any use by you of this program is subject to the terms
8  * of such GNU licence.
9  *
10  * A copy of the licence is included with the program, and can also be obtained
11  * from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
12  * Boston, MA  02110-1301, USA.
13  *
14  */
15 
16 
17 
18 
19 
20 /*
21  * A simple demand based power management policy
22  */
23 
24 #ifndef MALI_KBASE_PM_DEMAND_H
25 #define MALI_KBASE_PM_DEMAND_H
26 
27 /**
28  * DOC: Demand power management policy
29  *
30  * The demand power management policy has the following characteristics:
31  * - When KBase indicates that the GPU will be powered up, but we don't yet
32  *   know which Job Chains are to be run:
33  *  - The Shader Cores are not powered up
34  *
35  * - When KBase indicates that a set of Shader Cores are needed to submit the
36  *   currently queued Job Chains:
37  *  - Only those Shader Cores are powered up
38  *
39  * - When KBase indicates that the GPU need not be powered:
40  *  - The Shader Cores are powered off, and the GPU itself is powered off too.
41  *
42  * Note:
43  * - KBase indicates the GPU will be powered up when it has a User Process that
44  *   has just started to submit Job Chains.
45  *
46  * - KBase indicates the GPU need not be powered when all the Job Chains from
47  *   User Processes have finished, and it is waiting for a User Process to
48  *   submit some more Job Chains.
49  */
50 
51 /**
52  * struct kbasep_pm_policy_demand - Private structure for policy instance data
53  *
54  * @dummy: No state is needed, a dummy variable
55  *
56  * This contains data that is private to the demand power policy.
57  */
58 struct kbasep_pm_policy_demand {
59 	int dummy;
60 };
61 
62 extern const struct kbase_pm_policy kbase_pm_demand_policy_ops;
63 
64 #endif /* MALI_KBASE_PM_DEMAND_H */
65