import PULS_20160108
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / misc / mediatek / gpu / ged / include / ged_bridge.h
CommitLineData
6fa3eb70
S
1#ifndef __GED_BRIDGE_H__
2#define __GED_BRIDGE_H__
3
4#include "ged_base.h"
5#include "ged_log.h"
6
7typedef struct _GED_BRIDGE_PACKAGE
8{
9 unsigned int ui32FunctionID;
10 int i32Size;
11 void *pvParamIn;
12 int i32InBufferSize;
13 void *pvParamOut;
14 int i32OutBufferSize;
15} GED_BRIDGE_PACKAGE;
16
17/*****************************************************************************
18 * IOCTL values.
19 *****************************************************************************/
20
21#define GED_MAGIC 'g'
22
23#define GED_IO(INDEX) _IO(GED_MAGIC, INDEX, GED_BRIDGE_PACKAGE)
24#define GED_IOW(INDEX) _IOW(GED_MAGIC, INDEX, GED_BRIDGE_PACKAGE)
25#define GED_IOR(INDEX) _IOR(GED_MAGIC, INDEX, GED_BRIDGE_PACKAGE)
26#define GED_IOWR(INDEX) _IOWR(GED_MAGIC, INDEX, GED_BRIDGE_PACKAGE)
27#define GED_GET_BRIDGE_ID(X) _IOC_NR(X)
28
29/*****************************************************************************
30 * IOCTL Commands
31 *****************************************************************************/
32typedef enum
33{
34 GED_BRIDGE_COMMAND_LOG_BUF_GET,
35 GED_BRIDGE_COMMAND_LOG_BUF_WRITE,
36 GED_BRIDGE_COMMAND_LOG_BUF_RESET,
37 GED_BRIDGE_COMMAND_BOOST_GPU_FREQ,
38 GED_BRIDGE_COMMAND_MONITOR_3D_FENCE
39} GED_BRIDGE_COMMAND_ID;
40
41#define GED_BRIDGE_IO_LOG_BUF_GET GED_IOWR(GED_BRIDGE_COMMAND_LOG_BUF_GET)
42#define GED_BRIDGE_IO_LOG_BUF_WRITE GED_IOWR(GED_BRIDGE_COMMAND_LOG_BUF_WRITE)
43#define GED_BRIDGE_IO_LOG_BUF_RESET GED_IOWR(GED_BRIDGE_COMMAND_LOG_BUF_RESET)
44#define GED_BRIDGE_IO_BOOST_GPU_FREQ GED_IOWR(GED_BRIDGE_COMMAND_BOOST_GPU_FREQ)
45#define GED_BRIDGE_IO_MONITOR_3D_FENCE GED_IOWR(GED_BRIDGE_COMMAND_MONITOR_3D_FENCE)
46
47/*****************************************************************************
48 * LOG_BUF_GET
49 *****************************************************************************/
50
51/* Bridge in structure for LOG_BUF_GET */
52typedef struct GED_BRIDGE_IN_LOGBUFGET_TAG
53{
54 char acName[GED_LOG_BUF_NAME_LENGTH];
55} GED_BRIDGE_IN_LOGBUFGET;
56
57
58/* Bridge out structure for LOG_BUF_GETC */
59typedef struct GED_BRIDGE_OUT_LOGBUFGET_TAG
60{
61 GED_ERROR eError;
62 GED_LOG_BUF_HANDLE hLogBuf;
63} GED_BRIDGE_OUT_LOGBUFGET;
64
65/*****************************************************************************
66 * LOG_BUF_WRITE
67 *****************************************************************************/
68
69#define GED_BRIDGE_IN_LOGBUF_SIZE 512
70
71/* Bridge in structure for LOG_BUF_WRITE */
72typedef struct GED_BRIDGE_IN_LOGBUFWRITE_TAG
73{
74 GED_LOG_BUF_HANDLE hLogBuf;
75 char acLogBuf[GED_BRIDGE_IN_LOGBUF_SIZE];
76} GED_BRIDGE_IN_LOGBUFWRITE;
77
78/* Bridge out structure for LOG_BUF_WRITE */
79typedef struct GED_BRIDGE_OUT_LOGBUFWRITE_TAG
80{
81 GED_ERROR eError;
82} GED_BRIDGE_OUT_LOGBUFWRITE;
83
84/******************************************************************************
85 * LOG_BUF_RESET
86 ******************************************************************************/
87
88/* Bridge in structure for LOG_BUF_RESET */
89typedef struct GED_BRIDGE_IN_LOGBUFRESET_TAG
90{
91 GED_LOG_BUF_HANDLE hLogBuf;
92} GED_BRIDGE_IN_LOGBUFRESET;
93
94/* Bridge out structure for LOG_BUF_RESET */
95typedef struct GED_BRIDGE_OUT_LOGBUFRESET_TAG
96{
97 GED_ERROR eError;
98} GED_BRIDGE_OUT_LOGBUFRESET;
99
100/*****************************************************************************
101 * BOOST GPU FREQ
102 *****************************************************************************/
103
104typedef enum
105{
106 GED_BOOST_GPU_FREQ_LEVEL_MAX = 100
107} GED_BOOST_GPU_FREQ_LEVEL;
108
109/* Bridge in structure for LOG_BUF_WRITE */
110typedef struct GED_BRIDGE_IN_BOOSTGPUFREQ_TAG
111{
112 GED_BOOST_GPU_FREQ_LEVEL eGPUFreqLevel;
113} GED_BRIDGE_IN_BOOSTGPUFREQ;
114
115/* Bridge out structure for LOG_BUF_WRITE */
116typedef struct GED_BRIDGE_OUT_BOOSTGPUFREQ_TAG
117{
118 GED_ERROR eError;
119} GED_BRIDGE_OUT_BOOSTGPUFREQ;
120
121/*****************************************************************************
122 * MONITOR 3D FENCE
123 *****************************************************************************/
124
125/* Bridge in structure for MONITOR3DFENCE */
126typedef struct GED_BRIDGE_IN_MONITOR3DFENCE_TAG
127{
128 int fd;
129} GED_BRIDGE_IN_MONITOR3DFENCE;
130
131/* Bridge out structure for RECORDSWAPBUFFERS */
132typedef struct GED_BRIDGE_OUT_MONITOR3DFENCE_TAG
133{
134 GED_ERROR eError;
135} GED_BRIDGE_OUT_MONITOR3DFENCE;
136
137/*****************************************************************************
138 * BRIDGE FUNCTIONS
139 *****************************************************************************/
140
141int ged_bridge_log_buf_get(
142 GED_BRIDGE_IN_LOGBUFGET *psLogBufGetIN,
143 GED_BRIDGE_OUT_LOGBUFGET *psLogBufGetOUT);
144
145int ged_bridge_log_buf_write(
146 GED_BRIDGE_IN_LOGBUFWRITE *psLogBufWriteIN,
147 GED_BRIDGE_OUT_LOGBUFWRITE *psLogBufWriteOUT);
148
149int ged_bridge_log_buf_reset(
150 GED_BRIDGE_IN_LOGBUFRESET *psLogBufResetIn,
151 GED_BRIDGE_OUT_LOGBUFRESET *psLogBufResetOUT);
152
153int ged_bridge_boost_gpu_freq(
154 GED_BRIDGE_IN_BOOSTGPUFREQ *psBoostGpuFreqIN,
155 GED_BRIDGE_OUT_BOOSTGPUFREQ *psBoostGpuFreqOUT);
156
157int ged_bridge_monitor_3D_fence(
158 GED_BRIDGE_IN_MONITOR3DFENCE *psMonitor3DFenceINT,
159 GED_BRIDGE_OUT_MONITOR3DFENCE *psMonitor3DFenceOUT);
160
161#endif