rk: ion: resolve build err
[firefly-linux-kernel-4.4.55.git] / drivers / gpu / arm / t6xx / kbase / src / common / mali_kbase_trace_defs.h
1 /*
2  *
3  * (C) COPYRIGHT 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 /* ***** IMPORTANT: THIS IS NOT A NORMAL HEADER FILE         *****
21  * *****            DO NOT INCLUDE DIRECTLY                  *****
22  * *****            THE LACK OF HEADER GUARDS IS INTENTIONAL ***** */
23
24 /*
25  * The purpose of this header file is just to contain a list of trace code idenitifers
26  *
27  * Each identifier is wrapped in a macro, so that its string form and enum form can be created
28  *
29  * Each macro is separated with a comma, to allow insertion into an array initializer or enum definition block.
30  *
31  * This allows automatic creation of an enum and a corresponding array of strings
32  *
33  * Before #including, the includer MUST #define KBASE_TRACE_CODE_MAKE_CODE.
34  * After #including, the includer MUST #under KBASE_TRACE_CODE_MAKE_CODE.
35  *
36  * e.g.:
37  * #define KBASE_TRACE_CODE( X ) KBASE_TRACE_CODE_ ## X
38  * typedef enum
39  * {
40  * #define KBASE_TRACE_CODE_MAKE_CODE( X ) KBASE_TRACE_CODE( X )
41  * #include "mali_kbase_trace_defs.h"
42  * #undef  KBASE_TRACE_CODE_MAKE_CODE
43  * } kbase_trace_code;
44  *
45  * IMPORTANT: THIS FILE MUST NOT BE USED FOR ANY OTHER PURPOSE OTHER THAN THE ABOVE
46  *
47  *
48  * The use of the macro here is:
49  * - KBASE_TRACE_CODE_MAKE_CODE( X )
50  *
51  * Which produces:
52  * - For an enum, KBASE_TRACE_CODE_X
53  * - For a string, "X"
54  *
55  *
56  * For example:
57  * - KBASE_TRACE_CODE_MAKE_CODE( JM_JOB_COMPLETE ) expands to:
58  *  - KBASE_TRACE_CODE_JM_JOB_COMPLETE for the enum
59  *  - "JM_JOB_COMPLETE" for the string
60  * - To use it to trace an event, do:
61  *  - KBASE_TRACE_ADD( kbdev, JM_JOB_COMPLETE, subcode, kctx, uatom, val );
62  */
63
64 #if 0 /* Dummy section to avoid breaking formatting */
65 int dummy_array[] = {
66 #endif
67
68 /*
69  * Core events
70  */
71         KBASE_TRACE_CODE_MAKE_CODE(CORE_CTX_DESTROY),   /* no info_val, no gpu_addr, no atom */
72         KBASE_TRACE_CODE_MAKE_CODE(CORE_CTX_HWINSTR_TERM),      /* no info_val, no gpu_addr, no atom */
73         KBASE_TRACE_CODE_MAKE_CODE(CORE_GPU_IRQ),       /* info_val == GPU_IRQ_STATUS register */
74         KBASE_TRACE_CODE_MAKE_CODE(CORE_GPU_IRQ_CLEAR), /* info_val == bits cleared */
75         KBASE_TRACE_CODE_MAKE_CODE(CORE_GPU_IRQ_DONE),  /* info_val == GPU_IRQ_STATUS register */
76         KBASE_TRACE_CODE_MAKE_CODE(CORE_GPU_SOFT_RESET),
77         KBASE_TRACE_CODE_MAKE_CODE(CORE_GPU_HARD_RESET),
78         KBASE_TRACE_CODE_MAKE_CODE(CORE_GPU_PRFCNT_CLEAR),
79         KBASE_TRACE_CODE_MAKE_CODE(CORE_GPU_PRFCNT_SAMPLE),     /* GPU addr==dump address */
80         KBASE_TRACE_CODE_MAKE_CODE(CORE_GPU_CLEAN_INV_CACHES),
81
82 /*
83  * Job Slot management events
84  */
85         KBASE_TRACE_CODE_MAKE_CODE(JM_IRQ),     /* info_val==irq rawstat at start */
86         KBASE_TRACE_CODE_MAKE_CODE(JM_IRQ_END),
87                                         /* info_val==jobs processed */
88 /* In the following:
89  *
90  * - ctx is set if a corresponding job found (NULL otherwise, e.g. some soft-stop cases)
91  * - uatom==kernel-side mapped uatom address (for correlation with user-side)
92  */
93         KBASE_TRACE_CODE_MAKE_CODE(JM_JOB_DONE),        /* info_val==exit code; gpu_addr==chain gpuaddr */
94         KBASE_TRACE_CODE_MAKE_CODE(JM_SUBMIT),
95                                         /* gpu_addr==JSn_HEAD_NEXT written, info_val==lower 32 bits of affinity */
96 /* gpu_addr is as follows:
97  * - If JSn_STATUS active after soft-stop, val==gpu addr written to JSn_HEAD on submit
98  * - otherwise gpu_addr==0 */
99         KBASE_TRACE_CODE_MAKE_CODE(JM_SOFTSTOP),
100         KBASE_TRACE_CODE_MAKE_CODE(JM_SOFTSTOP_0),
101         KBASE_TRACE_CODE_MAKE_CODE(JM_SOFTSTOP_1),
102         KBASE_TRACE_CODE_MAKE_CODE(JM_HARDSTOP),        /* gpu_addr==JSn_HEAD read */
103         KBASE_TRACE_CODE_MAKE_CODE(JM_HARDSTOP_0),      /* gpu_addr==JSn_HEAD read */
104         KBASE_TRACE_CODE_MAKE_CODE(JM_HARDSTOP_1),      /* gpu_addr==JSn_HEAD read */
105         KBASE_TRACE_CODE_MAKE_CODE(JM_UPDATE_HEAD),     /* gpu_addr==JSn_TAIL read */
106 /* gpu_addr is as follows:
107  * - If JSn_STATUS active before soft-stop, val==JSn_HEAD
108  * - otherwise gpu_addr==0 */
109         KBASE_TRACE_CODE_MAKE_CODE(JM_CHECK_HEAD),      /* gpu_addr==JSn_HEAD read */
110         KBASE_TRACE_CODE_MAKE_CODE(JM_FLUSH_WORKQS),
111         KBASE_TRACE_CODE_MAKE_CODE(JM_FLUSH_WORKQS_DONE),
112         KBASE_TRACE_CODE_MAKE_CODE(JM_ZAP_NON_SCHEDULED),       /* info_val == is_scheduled */
113         KBASE_TRACE_CODE_MAKE_CODE(JM_ZAP_SCHEDULED),
114                                                 /* info_val == is_scheduled */
115         KBASE_TRACE_CODE_MAKE_CODE(JM_ZAP_DONE),
116         KBASE_TRACE_CODE_MAKE_CODE(JM_SLOT_SOFT_OR_HARD_STOP),  /* info_val == nr jobs submitted */
117         KBASE_TRACE_CODE_MAKE_CODE(JM_SLOT_EVICT),      /* gpu_addr==JSn_HEAD_NEXT last written */
118         KBASE_TRACE_CODE_MAKE_CODE(JM_SUBMIT_AFTER_RESET),
119         KBASE_TRACE_CODE_MAKE_CODE(JM_BEGIN_RESET_WORKER),
120         KBASE_TRACE_CODE_MAKE_CODE(JM_END_RESET_WORKER),
121 /*
122  * Job dispatch events
123  */
124         KBASE_TRACE_CODE_MAKE_CODE(JD_DONE),/* gpu_addr==value to write into JSn_HEAD */
125         KBASE_TRACE_CODE_MAKE_CODE(JD_DONE_WORKER),     /* gpu_addr==value to write into JSn_HEAD */
126         KBASE_TRACE_CODE_MAKE_CODE(JD_DONE_WORKER_END),
127                                                 /* gpu_addr==value to write into JSn_HEAD */
128         KBASE_TRACE_CODE_MAKE_CODE(JD_DONE_TRY_RUN_NEXT_JOB),
129                                                         /* gpu_addr==value to write into JSn_HEAD */
130         KBASE_TRACE_CODE_MAKE_CODE(JD_ZAP_CONTEXT),     /* gpu_addr==0, info_val==0, uatom==0 */
131         KBASE_TRACE_CODE_MAKE_CODE(JD_CANCEL),
132                                         /* gpu_addr==value to write into JSn_HEAD */
133         KBASE_TRACE_CODE_MAKE_CODE(JD_CANCEL_WORKER),
134                                                 /* gpu_addr==value to write into JSn_HEAD */
135 /*
136  * Scheduler Core events
137  */
138         KBASE_TRACE_CODE_MAKE_CODE(JS_RETAIN_CTX_NOLOCK),
139         KBASE_TRACE_CODE_MAKE_CODE(JS_ADD_JOB), /* gpu_addr==value to write into JSn_HEAD */
140         KBASE_TRACE_CODE_MAKE_CODE(JS_REMOVE_JOB),      /* gpu_addr==last value written/would be written to JSn_HEAD */
141         KBASE_TRACE_CODE_MAKE_CODE(JS_RETAIN_CTX),
142         KBASE_TRACE_CODE_MAKE_CODE(JS_RELEASE_CTX),
143         KBASE_TRACE_CODE_MAKE_CODE(JS_TRY_SCHEDULE_HEAD_CTX),
144         KBASE_TRACE_CODE_MAKE_CODE(JS_JOB_DONE_TRY_RUN_NEXT_JOB),       /* gpu_addr==value to write into JSn_HEAD */
145         KBASE_TRACE_CODE_MAKE_CODE(JS_JOB_DONE_RETRY_NEEDED),
146                                                         /* gpu_addr==value to write into JSn_HEAD */
147         KBASE_TRACE_CODE_MAKE_CODE(JS_FAST_START_EVICTS_CTX),
148                                                         /* kctx is the one being evicted, info_val == kctx to put in  */
149         KBASE_TRACE_CODE_MAKE_CODE(JS_AFFINITY_SUBMIT_TO_BLOCKED),
150         KBASE_TRACE_CODE_MAKE_CODE(JS_AFFINITY_CURRENT),        /* info_val == lower 32 bits of affinity */
151         KBASE_TRACE_CODE_MAKE_CODE(JS_CORE_REF_REQUEST_CORES_FAILED),
152                                                                 /* info_val == lower 32 bits of affinity */
153         KBASE_TRACE_CODE_MAKE_CODE(JS_CORE_REF_REGISTER_INUSE_FAILED),
154                                                                 /* info_val == lower 32 bits of affinity */
155         KBASE_TRACE_CODE_MAKE_CODE(JS_CORE_REF_REQUEST_ON_RECHECK_FAILED),      /* info_val == lower 32 bits of rechecked affinity */
156         KBASE_TRACE_CODE_MAKE_CODE(JS_CORE_REF_REGISTER_ON_RECHECK_FAILED),     /* info_val == lower 32 bits of rechecked affinity */
157         KBASE_TRACE_CODE_MAKE_CODE(JS_CORE_REF_AFFINITY_WOULD_VIOLATE),
158                                                                 /* info_val == lower 32 bits of affinity */
159         KBASE_TRACE_CODE_MAKE_CODE(JS_CTX_ATTR_NOW_ON_CTX),     /* info_val == the ctx attribute now on ctx */
160         KBASE_TRACE_CODE_MAKE_CODE(JS_CTX_ATTR_NOW_ON_RUNPOOL),
161                                                         /* info_val == the ctx attribute now on runpool */
162         KBASE_TRACE_CODE_MAKE_CODE(JS_CTX_ATTR_NOW_OFF_CTX),/* info_val == the ctx attribute now off ctx */
163         KBASE_TRACE_CODE_MAKE_CODE(JS_CTX_ATTR_NOW_OFF_RUNPOOL),        /* info_val == the ctx attribute now off runpool */
164 /*
165  * Scheduler Policy events
166  */
167         KBASE_TRACE_CODE_MAKE_CODE(JS_POLICY_INIT_CTX),
168         KBASE_TRACE_CODE_MAKE_CODE(JS_POLICY_TERM_CTX),
169         KBASE_TRACE_CODE_MAKE_CODE(JS_POLICY_TRY_EVICT_CTX),    /* info_val == whether it was evicted */
170         KBASE_TRACE_CODE_MAKE_CODE(JS_POLICY_FOREACH_CTX_JOBS),
171         KBASE_TRACE_CODE_MAKE_CODE(JS_POLICY_ENQUEUE_CTX),
172         KBASE_TRACE_CODE_MAKE_CODE(JS_POLICY_DEQUEUE_HEAD_CTX),
173         KBASE_TRACE_CODE_MAKE_CODE(JS_POLICY_RUNPOOL_ADD_CTX),
174         KBASE_TRACE_CODE_MAKE_CODE(JS_POLICY_RUNPOOL_REMOVE_CTX),
175         KBASE_TRACE_CODE_MAKE_CODE(JS_POLICY_DEQUEUE_JOB),
176         KBASE_TRACE_CODE_MAKE_CODE(JS_POLICY_DEQUEUE_JOB_IRQ),
177         KBASE_TRACE_CODE_MAKE_CODE(JS_POLICY_ENQUEUE_JOB),      /* gpu_addr==JSn_HEAD to write if the job were run */
178         KBASE_TRACE_CODE_MAKE_CODE(JS_POLICY_TIMER_START),
179         KBASE_TRACE_CODE_MAKE_CODE(JS_POLICY_TIMER_END),
180 /*
181  * Power Management Events
182  */
183         KBASE_TRACE_CODE_MAKE_CODE(PM_JOB_SUBMIT_AFTER_POWERING_UP),
184         KBASE_TRACE_CODE_MAKE_CODE(PM_JOB_SUBMIT_AFTER_POWERED_UP),
185         KBASE_TRACE_CODE_MAKE_CODE(PM_PWRON),
186         KBASE_TRACE_CODE_MAKE_CODE(PM_PWRON_TILER),
187         KBASE_TRACE_CODE_MAKE_CODE(PM_PWRON_L2),
188         KBASE_TRACE_CODE_MAKE_CODE(PM_PWROFF),
189         KBASE_TRACE_CODE_MAKE_CODE(PM_PWROFF_TILER),
190         KBASE_TRACE_CODE_MAKE_CODE(PM_PWROFF_L2),
191         KBASE_TRACE_CODE_MAKE_CODE(PM_CORES_POWERED),
192         KBASE_TRACE_CODE_MAKE_CODE(PM_CORES_POWERED_TILER),
193         KBASE_TRACE_CODE_MAKE_CODE(PM_CORES_POWERED_L2),
194         KBASE_TRACE_CODE_MAKE_CODE(PM_CORES_CHANGE_DESIRED),
195         KBASE_TRACE_CODE_MAKE_CODE(PM_CORES_CHANGE_DESIRED_TILER),
196         KBASE_TRACE_CODE_MAKE_CODE(PM_CORES_CHANGE_AVAILABLE),
197         KBASE_TRACE_CODE_MAKE_CODE(PM_CORES_CHANGE_AVAILABLE_TILER),
198         KBASE_TRACE_CODE_MAKE_CODE(PM_CORES_AVAILABLE),
199         KBASE_TRACE_CODE_MAKE_CODE(PM_CORES_AVAILABLE_TILER),
200         /* PM_DESIRED_REACHED: gpu_addr == pm.gpu_in_desired_state */
201         KBASE_TRACE_CODE_MAKE_CODE(PM_DESIRED_REACHED),
202         KBASE_TRACE_CODE_MAKE_CODE(PM_DESIRED_REACHED_TILER),
203         KBASE_TRACE_CODE_MAKE_CODE(PM_REGISTER_CHANGE_SHADER_INUSE),
204         KBASE_TRACE_CODE_MAKE_CODE(PM_REGISTER_CHANGE_TILER_INUSE),
205         KBASE_TRACE_CODE_MAKE_CODE(PM_REGISTER_CHANGE_SHADER_NEEDED),
206         KBASE_TRACE_CODE_MAKE_CODE(PM_REGISTER_CHANGE_TILER_NEEDED),
207         KBASE_TRACE_CODE_MAKE_CODE(PM_RELEASE_CHANGE_SHADER_INUSE),
208         KBASE_TRACE_CODE_MAKE_CODE(PM_RELEASE_CHANGE_TILER_INUSE),
209         KBASE_TRACE_CODE_MAKE_CODE(PM_UNREQUEST_CHANGE_SHADER_NEEDED),
210         KBASE_TRACE_CODE_MAKE_CODE(PM_UNREQUEST_CHANGE_TILER_NEEDED),
211         KBASE_TRACE_CODE_MAKE_CODE(PM_REQUEST_CHANGE_SHADER_NEEDED),
212         KBASE_TRACE_CODE_MAKE_CODE(PM_REQUEST_CHANGE_TILER_NEEDED),
213         KBASE_TRACE_CODE_MAKE_CODE(PM_WAKE_WAITERS),
214         KBASE_TRACE_CODE_MAKE_CODE(PM_CONTEXT_ACTIVE),
215         KBASE_TRACE_CODE_MAKE_CODE(PM_CONTEXT_IDLE),
216         KBASE_TRACE_CODE_MAKE_CODE(PM_GPU_ON),
217         KBASE_TRACE_CODE_MAKE_CODE(PM_GPU_OFF),
218         KBASE_TRACE_CODE_MAKE_CODE(PM_SET_POLICY),      /* info_val == policy number, or -1 for "Already changing" */
219         KBASE_TRACE_CODE_MAKE_CODE(PM_CA_SET_POLICY),
220
221         KBASE_TRACE_CODE_MAKE_CODE(PM_CURRENT_POLICY_INIT),     /* info_val == policy number */
222         KBASE_TRACE_CODE_MAKE_CODE(PM_CURRENT_POLICY_TERM),     /* info_val == policy number */
223 /* Unused code just to make it easier to not have a comma at the end.
224  * All other codes MUST come before this */
225         KBASE_TRACE_CODE_MAKE_CODE(DUMMY)
226
227
228 #if 0 /* Dummy section to avoid breaking formatting */
229 };
230 #endif
231
232 /* ***** THE LACK OF HEADER GUARDS IS INTENTIONAL ***** */