Commit | Line | Data |
---|---|---|
6fa3eb70 | 1 | #include <linux/kernel.h> |
765691f5 | 2 | #include <linux/mtk_gpu_utility.h> |
6fa3eb70 S |
3 | |
4 | #include "ged_base.h" | |
5 | #include "ged_bridge.h" | |
6 | #include "ged_log.h" | |
7 | #include "ged_profile_dvfs.h" | |
8 | #include "ged_monitor_3D_fence.h" | |
db9a41fa S |
9 | #include "ged_notify_sw_vsync.h" |
10 | #include "ged_dvfs.h" | |
6fa3eb70 S |
11 | |
12 | //----------------------------------------------------------------------------- | |
13 | int ged_bridge_log_buf_get( | |
db9a41fa S |
14 | GED_BRIDGE_IN_LOGBUFGET *psLogBufGetIN, |
15 | GED_BRIDGE_OUT_LOGBUFGET *psLogBufGetOUT) | |
6fa3eb70 | 16 | { |
db9a41fa S |
17 | psLogBufGetOUT->hLogBuf = ged_log_buf_get(psLogBufGetIN->acName); |
18 | psLogBufGetOUT->eError = psLogBufGetOUT->hLogBuf ? GED_OK : GED_ERROR_FAIL; | |
19 | return 0; | |
6fa3eb70 S |
20 | } |
21 | //----------------------------------------------------------------------------- | |
22 | int ged_bridge_log_buf_write( | |
db9a41fa S |
23 | GED_BRIDGE_IN_LOGBUFWRITE *psLogBufWriteIN, |
24 | GED_BRIDGE_OUT_LOGBUFWRITE *psLogBufWriteOUT) | |
6fa3eb70 | 25 | { |
db9a41fa S |
26 | psLogBufWriteOUT->eError = |
27 | ged_log_buf_print2(psLogBufWriteIN->hLogBuf, psLogBufWriteIN->attrs, psLogBufWriteIN->acLogBuf); | |
6fa3eb70 S |
28 | |
29 | #if 0 | |
db9a41fa S |
30 | if (ged_log_buf_write( |
31 | psLogBufWriteIN->hLogBuf, | |
32 | /*from user*/psLogBufWriteIN->acLogBuf, | |
33 | GED_BRIDGE_IN_LOGBUF_SIZE) > 0) | |
34 | { | |
35 | psLogBufWriteOUT->eError = GED_OK; | |
36 | } | |
37 | else | |
38 | { | |
39 | psLogBufWriteOUT->eError = GED_ERROR_FAIL; | |
40 | } | |
6fa3eb70 | 41 | #endif |
db9a41fa | 42 | return 0; |
6fa3eb70 S |
43 | } |
44 | //----------------------------------------------------------------------------- | |
45 | int ged_bridge_log_buf_reset( | |
db9a41fa S |
46 | GED_BRIDGE_IN_LOGBUFRESET *psLogBufResetIn, |
47 | GED_BRIDGE_OUT_LOGBUFRESET *psLogBufResetOUT) | |
6fa3eb70 | 48 | { |
db9a41fa S |
49 | psLogBufResetOUT->eError = ged_log_buf_reset(psLogBufResetIn->hLogBuf); |
50 | return 0; | |
6fa3eb70 S |
51 | } |
52 | //----------------------------------------------------------------------------- | |
53 | int ged_bridge_boost_gpu_freq( | |
db9a41fa S |
54 | GED_BRIDGE_IN_BOOSTGPUFREQ *psBoostGpuFreqIN, |
55 | GED_BRIDGE_OUT_BOOSTGPUFREQ *psBoostGpuFreqOUT) | |
6fa3eb70 S |
56 | { |
57 | #if 1 | |
db9a41fa | 58 | psBoostGpuFreqOUT->eError = mtk_boost_gpu_freq() ? GED_OK : GED_ERROR_FAIL; |
6fa3eb70 | 59 | #else |
db9a41fa S |
60 | unsigned int ui32Count; |
61 | if (mtk_custom_get_gpu_freq_level_count(&ui32Count)) | |
62 | { | |
63 | int i32Level = (ui32Count - 1) - GED_BOOST_GPU_FREQ_LEVEL_MAX - psBoostGpuFreqIN->eGPUFreqLevel; | |
64 | mtk_boost_gpu_freq(i32Level); | |
65 | psBoostGpuFreqOUT->eError = GED_OK; | |
66 | } | |
67 | else | |
68 | { | |
69 | psBoostGpuFreqOUT->eError = GED_ERROR_FAIL; | |
70 | } | |
6fa3eb70 | 71 | #endif |
db9a41fa | 72 | return 0; |
6fa3eb70 S |
73 | } |
74 | //----------------------------------------------------------------------------- | |
75 | int ged_bridge_monitor_3D_fence( | |
db9a41fa S |
76 | GED_BRIDGE_IN_MONITOR3DFENCE *psMonitor3DFenceINT, |
77 | GED_BRIDGE_OUT_MONITOR3DFENCE *psMonitor3DFenceOUT) | |
6fa3eb70 | 78 | { |
db9a41fa S |
79 | psMonitor3DFenceOUT->eError = ged_monitor_3D_fence_add(psMonitor3DFenceINT->fd); |
80 | return 0; | |
6fa3eb70 | 81 | } |
db9a41fa S |
82 | //----------------------------------------------------------------------------- |
83 | int ged_bridge_query_info( | |
84 | GED_BRIDGE_IN_QUERY_INFO *psQueryInfoINT, | |
85 | GED_BRIDGE_OUT_QUERY_INFO *psQueryInfoOUT) | |
86 | { | |
87 | psQueryInfoOUT->retrieve = ged_query_info( psQueryInfoINT->eType); | |
88 | return 0; | |
89 | } | |
90 | //----------------------------------------------------------------------------- | |
91 | int ged_bridge_notify_vsync( | |
92 | GED_BRIDGE_IN_NOTIFY_VSYNC *psNotifyVsyncINT, | |
93 | GED_BRIDGE_OUT_NOTIFY_VSYNC *psNotifyVsyncOUT) | |
94 | { | |
95 | psNotifyVsyncOUT->eError = | |
96 | //ged_notify_vsync(psNotifyVsyncINT->eType, &psNotifyVsyncOUT->t); | |
97 | ged_notify_sw_vsync(psNotifyVsyncINT->eType, &psNotifyVsyncOUT->sQueryData); | |
98 | ||
99 | return 0; | |
100 | } | |
101 | //----------------------------------------------------------------------------- | |
102 | int ged_bridge_dvfs_probe( | |
103 | GED_BRIDGE_IN_DVFS_PROBE *psDVFSProbeINT, | |
104 | GED_BRIDGE_OUT_DVFS_PROBE *psDVFSProbeOUT) | |
105 | { | |
106 | psDVFSProbeOUT->eError = ged_dvfs_probe(psDVFSProbeINT->pid); | |
107 | return 0; | |
108 | } | |
109 | ||
110 | //----------------------------------------------------------------------------- | |
111 | int ged_bridge_dvfs_um_retrun( | |
112 | GED_BRIDGE_IN_DVFS_UM_RETURN *psDVFS_UM_returnINT, | |
113 | GED_BRIDGE_OUT_DVFS_UM_RETURN *psDVFS_UM_returnOUT) | |
114 | { | |
115 | psDVFS_UM_returnOUT->eError = | |
116 | ged_dvfs_um_commit( psDVFS_UM_returnINT->gpu_tar_freq, | |
117 | psDVFS_UM_returnINT->bFallback); | |
118 | return 0; | |
119 | } | |
120 | ||
121 |