4959cfe5d8144b47cae547dd35f3250cfd3e4a41
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / misc / mediatek / gpu / hal / mtk_gpu_utility.c
1 #include <linux/kernel.h>
2 #include <linux/module.h>
3 #include <linux/mtk_gpu_utility.h>
4
5 unsigned int (*mtk_get_gpu_memory_usage_fp)(void) = NULL;
6 EXPORT_SYMBOL(mtk_get_gpu_memory_usage_fp);
7
8 bool mtk_get_gpu_memory_usage(unsigned int* pMemUsage)
9 {
10 if (NULL != mtk_get_gpu_memory_usage_fp)
11 {
12 if (pMemUsage)
13 {
14 *pMemUsage = mtk_get_gpu_memory_usage_fp();
15 return true;
16 }
17 }
18 return false;
19 }
20 EXPORT_SYMBOL(mtk_get_gpu_memory_usage);
21
22 unsigned int (*mtk_get_gpu_page_cache_fp)(void) = NULL;
23 EXPORT_SYMBOL(mtk_get_gpu_page_cache_fp);
24
25 bool mtk_get_gpu_page_cache(unsigned int* pPageCache)
26 {
27 if (NULL != mtk_get_gpu_page_cache_fp)
28 {
29 if (pPageCache)
30 {
31 *pPageCache = mtk_get_gpu_page_cache_fp();
32 return true;
33 }
34 }
35 return false;
36 }
37 EXPORT_SYMBOL(mtk_get_gpu_page_cache);
38
39 unsigned int (*mtk_get_gpu_loading_fp)(void) = NULL;
40 EXPORT_SYMBOL(mtk_get_gpu_loading_fp);
41
42 bool mtk_get_gpu_loading(unsigned int* pLoading)
43 {
44 if (NULL != mtk_get_gpu_loading_fp)
45 {
46 if (pLoading)
47 {
48 *pLoading = mtk_get_gpu_loading_fp();
49 return true;
50 }
51 }
52 return false;
53 }
54 EXPORT_SYMBOL(mtk_get_gpu_loading);
55
56 unsigned int (*mtk_get_gpu_block_fp)(void) = NULL;
57 EXPORT_SYMBOL(mtk_get_gpu_block_fp);
58
59 bool mtk_get_gpu_block(unsigned int* pBlock)
60 {
61 if (NULL != mtk_get_gpu_block_fp)
62 {
63 if (pBlock)
64 {
65 *pBlock = mtk_get_gpu_block_fp();
66 return true;
67 }
68 }
69 return false;
70 }
71 EXPORT_SYMBOL(mtk_get_gpu_block);
72
73 unsigned int (*mtk_get_gpu_idle_fp)(void) = NULL;
74 EXPORT_SYMBOL(mtk_get_gpu_idle_fp);
75
76 bool mtk_get_gpu_idle(unsigned int* pIdle)
77 {
78 if (NULL != mtk_get_gpu_idle_fp)
79 {
80 if (pIdle)
81 {
82 *pIdle = mtk_get_gpu_idle_fp();
83 return true;
84 }
85 }
86 return false;
87 }
88 EXPORT_SYMBOL(mtk_get_gpu_idle);
89
90
91 unsigned int (*mtk_get_gpu_GP_loading_fp)(void) = NULL;
92 EXPORT_SYMBOL(mtk_get_gpu_GP_loading_fp);
93
94 bool mtk_get_gpu_GP_loading(unsigned int* pLoading)
95 {
96 if (NULL != mtk_get_gpu_GP_loading_fp)
97 {
98 if (pLoading)
99 {
100 *pLoading = mtk_get_gpu_GP_loading_fp();
101 return true;
102 }
103 }
104 return false;
105 }
106 EXPORT_SYMBOL(mtk_get_gpu_GP_loading);
107
108 unsigned int (*mtk_get_gpu_PP_loading_fp)(void) = NULL;
109 EXPORT_SYMBOL(mtk_get_gpu_PP_loading_fp);
110
111 bool mtk_get_gpu_PP_loading(unsigned int* pLoading)
112 {
113 if (NULL != mtk_get_gpu_PP_loading_fp)
114 {
115 if (pLoading)
116 {
117 *pLoading = mtk_get_gpu_PP_loading_fp();
118 return true;
119 }
120 }
121 return false;
122 }
123 EXPORT_SYMBOL(mtk_get_gpu_PP_loading);
124
125 unsigned int (*mtk_get_gpu_power_loading_fp)(void) = NULL;
126 EXPORT_SYMBOL(mtk_get_gpu_power_loading_fp);
127
128 bool mtk_get_gpu_power_loading(unsigned int* pLoading)
129 {
130 if (NULL != mtk_get_gpu_power_loading_fp)
131 {
132 if (pLoading)
133 {
134 *pLoading = mtk_get_gpu_power_loading_fp();
135 return true;
136 }
137 }
138 return false;
139 }
140 EXPORT_SYMBOL(mtk_get_gpu_power_loading);
141
142 void (*mtk_enable_gpu_dvfs_timer_fp)(bool bEnable) = NULL;
143 EXPORT_SYMBOL(mtk_enable_gpu_dvfs_timer_fp);
144
145 bool mtk_enable_gpu_dvfs_timer(bool bEnable)
146 {
147 if (NULL != mtk_enable_gpu_dvfs_timer_fp)
148 {
149 mtk_enable_gpu_dvfs_timer_fp(bEnable);
150 return true;
151 }
152 return false;
153 }
154 EXPORT_SYMBOL(mtk_enable_gpu_dvfs_timer);
155
156
157 void (*mtk_boost_gpu_freq_fp)(void) = NULL;
158 EXPORT_SYMBOL(mtk_boost_gpu_freq_fp);
159
160 bool mtk_boost_gpu_freq(void)
161 {
162 if (NULL != mtk_boost_gpu_freq_fp)
163 {
164 mtk_boost_gpu_freq_fp();
165 return true;
166 }
167 return false;
168 }
169 EXPORT_SYMBOL(mtk_boost_gpu_freq);
170
171 void (*mtk_set_bottom_gpu_freq_fp)(unsigned int) = NULL;
172 EXPORT_SYMBOL(mtk_set_bottom_gpu_freq_fp);
173
174 bool mtk_set_bottom_gpu_freq(unsigned int ui32FreqLevel)
175 {
176 if (NULL != mtk_set_bottom_gpu_freq_fp)
177 {
178 mtk_set_bottom_gpu_freq_fp(ui32FreqLevel);
179 return true;
180 }
181 return false;
182 }
183 EXPORT_SYMBOL(mtk_set_bottom_gpu_freq);
184
185 //-----------------------------------------------------------------------------
186 unsigned int (*mtk_custom_get_gpu_freq_level_count_fp)(void) = NULL;
187 EXPORT_SYMBOL(mtk_custom_get_gpu_freq_level_count_fp);
188
189 bool mtk_custom_get_gpu_freq_level_count(unsigned int* pui32FreqLevelCount)
190 {
191 if (NULL != mtk_custom_get_gpu_freq_level_count_fp)
192 {
193 if (pui32FreqLevelCount)
194 {
195 *pui32FreqLevelCount = mtk_custom_get_gpu_freq_level_count_fp();
196 return true;
197 }
198 }
199 return false;
200 }
201 EXPORT_SYMBOL(mtk_custom_get_gpu_freq_level_count);
202
203 //-----------------------------------------------------------------------------
204
205 void (*mtk_custom_boost_gpu_freq_fp)(unsigned int ui32FreqLevel) = NULL;
206 EXPORT_SYMBOL(mtk_custom_boost_gpu_freq_fp);
207
208 bool mtk_custom_boost_gpu_freq(unsigned int ui32FreqLevel)
209 {
210 if (NULL != mtk_custom_boost_gpu_freq_fp)
211 {
212 mtk_custom_boost_gpu_freq_fp(ui32FreqLevel);
213 return true;
214 }
215 return false;
216 }
217 EXPORT_SYMBOL(mtk_custom_boost_gpu_freq);
218
219 //-----------------------------------------------------------------------------
220
221 void (*mtk_custom_upbound_gpu_freq_fp)(unsigned int ui32FreqLevel) = NULL;
222 EXPORT_SYMBOL(mtk_custom_upbound_gpu_freq_fp);
223
224 bool mtk_custom_upbound_gpu_freq(unsigned int ui32FreqLevel)
225 {
226 if (NULL != mtk_custom_upbound_gpu_freq_fp)
227 {
228 mtk_custom_upbound_gpu_freq_fp(ui32FreqLevel);
229 return true;
230 }
231 return false;
232 }
233 EXPORT_SYMBOL(mtk_custom_upbound_gpu_freq);
234