| /* | 
|  * | 
|  * (C) COPYRIGHT 2014 ARM Limited. All rights reserved. | 
|  * | 
|  * This program is free software and is provided to you under the terms of the | 
|  * GNU General Public License version 2 as published by the Free Software | 
|  * Foundation, and any use by you of this program is subject to the terms | 
|  * of such GNU licence. | 
|  * | 
|  * A copy of the licence is included with the program, and can also be obtained | 
|  * from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | 
|  * Boston, MA  02110-1301, USA. | 
|  * | 
|  */ | 
|   | 
|   | 
|   | 
|   | 
| #if !defined(_TRACE_MALI_KBASE_H) || defined(TRACE_HEADER_MULTI_READ) | 
| #define _TRACE_MALI_KBASE_H | 
|   | 
| #undef TRACE_SYSTEM | 
| #define TRACE_SYSTEM mali | 
|   | 
| #include <linux/tracepoint.h> | 
|   | 
| DECLARE_EVENT_CLASS(mali_slot_template, | 
|     TP_PROTO(int jobslot, unsigned int info_val), | 
|     TP_ARGS(jobslot, info_val), | 
|     TP_STRUCT__entry( | 
|         __field(unsigned int, jobslot) | 
|         __field(unsigned int, info_val) | 
|     ), | 
|     TP_fast_assign( | 
|         __entry->jobslot = jobslot; | 
|         __entry->info_val = info_val; | 
|     ), | 
|     TP_printk("jobslot=%u info=%u", __entry->jobslot, __entry->info_val) | 
| ); | 
|   | 
| #define DEFINE_MALI_SLOT_EVENT(name) \ | 
| DEFINE_EVENT(mali_slot_template, mali_##name, \ | 
|     TP_PROTO(int jobslot, unsigned int info_val), \ | 
|     TP_ARGS(jobslot, info_val)) | 
| DEFINE_MALI_SLOT_EVENT(JM_SUBMIT); | 
| DEFINE_MALI_SLOT_EVENT(JM_JOB_DONE); | 
| DEFINE_MALI_SLOT_EVENT(JM_UPDATE_HEAD); | 
| DEFINE_MALI_SLOT_EVENT(JM_CHECK_HEAD); | 
| DEFINE_MALI_SLOT_EVENT(JM_SOFTSTOP); | 
| DEFINE_MALI_SLOT_EVENT(JM_SOFTSTOP_0); | 
| DEFINE_MALI_SLOT_EVENT(JM_SOFTSTOP_1); | 
| DEFINE_MALI_SLOT_EVENT(JM_HARDSTOP); | 
| DEFINE_MALI_SLOT_EVENT(JM_HARDSTOP_0); | 
| DEFINE_MALI_SLOT_EVENT(JM_HARDSTOP_1); | 
| DEFINE_MALI_SLOT_EVENT(JM_SLOT_SOFT_OR_HARD_STOP); | 
| DEFINE_MALI_SLOT_EVENT(JM_SLOT_EVICT); | 
| DEFINE_MALI_SLOT_EVENT(JM_BEGIN_RESET_WORKER); | 
| DEFINE_MALI_SLOT_EVENT(JM_END_RESET_WORKER); | 
| DEFINE_MALI_SLOT_EVENT(JS_CORE_REF_REGISTER_ON_RECHECK_FAILED); | 
| DEFINE_MALI_SLOT_EVENT(JS_AFFINITY_SUBMIT_TO_BLOCKED); | 
| DEFINE_MALI_SLOT_EVENT(JS_AFFINITY_CURRENT); | 
| DEFINE_MALI_SLOT_EVENT(JD_DONE_TRY_RUN_NEXT_JOB); | 
| DEFINE_MALI_SLOT_EVENT(JS_CORE_REF_REQUEST_CORES_FAILED); | 
| DEFINE_MALI_SLOT_EVENT(JS_CORE_REF_REGISTER_INUSE_FAILED); | 
| DEFINE_MALI_SLOT_EVENT(JS_CORE_REF_REQUEST_ON_RECHECK_FAILED); | 
| DEFINE_MALI_SLOT_EVENT(JS_CORE_REF_AFFINITY_WOULD_VIOLATE); | 
| DEFINE_MALI_SLOT_EVENT(JS_JOB_DONE_TRY_RUN_NEXT_JOB); | 
| DEFINE_MALI_SLOT_EVENT(JS_JOB_DONE_RETRY_NEEDED); | 
| DEFINE_MALI_SLOT_EVENT(JS_POLICY_DEQUEUE_JOB); | 
| DEFINE_MALI_SLOT_EVENT(JS_POLICY_DEQUEUE_JOB_IRQ); | 
| #undef DEFINE_MALI_SLOT_EVENT | 
|   | 
| DECLARE_EVENT_CLASS(mali_refcount_template, | 
|     TP_PROTO(int refcount, unsigned int info_val), | 
|     TP_ARGS(refcount, info_val), | 
|     TP_STRUCT__entry( | 
|         __field(unsigned int, refcount) | 
|         __field(unsigned int, info_val) | 
|     ), | 
|     TP_fast_assign( | 
|         __entry->refcount = refcount; | 
|         __entry->info_val = info_val; | 
|     ), | 
|     TP_printk("refcount=%u info=%u", __entry->refcount, __entry->info_val) | 
| ); | 
|   | 
| #define DEFINE_MALI_REFCOUNT_EVENT(name) \ | 
| DEFINE_EVENT(mali_refcount_template, mali_##name, \ | 
|     TP_PROTO(int refcount, unsigned int info_val), \ | 
|     TP_ARGS(refcount, info_val)) | 
| DEFINE_MALI_REFCOUNT_EVENT(JS_RETAIN_CTX_NOLOCK); | 
| DEFINE_MALI_REFCOUNT_EVENT(JS_ADD_JOB); | 
| DEFINE_MALI_REFCOUNT_EVENT(JS_REMOVE_JOB); | 
| DEFINE_MALI_REFCOUNT_EVENT(JS_RETAIN_CTX); | 
| DEFINE_MALI_REFCOUNT_EVENT(JS_RELEASE_CTX); | 
| DEFINE_MALI_REFCOUNT_EVENT(JS_TRY_SCHEDULE_HEAD_CTX); | 
| DEFINE_MALI_REFCOUNT_EVENT(JS_POLICY_INIT_CTX); | 
| DEFINE_MALI_REFCOUNT_EVENT(JS_POLICY_TERM_CTX); | 
| DEFINE_MALI_REFCOUNT_EVENT(JS_POLICY_ENQUEUE_CTX); | 
| DEFINE_MALI_REFCOUNT_EVENT(JS_POLICY_DEQUEUE_HEAD_CTX); | 
| DEFINE_MALI_REFCOUNT_EVENT(JS_POLICY_TRY_EVICT_CTX); | 
| DEFINE_MALI_REFCOUNT_EVENT(JS_POLICY_RUNPOOL_ADD_CTX); | 
| DEFINE_MALI_REFCOUNT_EVENT(JS_POLICY_RUNPOOL_REMOVE_CTX); | 
| DEFINE_MALI_REFCOUNT_EVENT(JS_POLICY_FOREACH_CTX_JOBS); | 
| DEFINE_MALI_REFCOUNT_EVENT(PM_CONTEXT_ACTIVE); | 
| DEFINE_MALI_REFCOUNT_EVENT(PM_CONTEXT_IDLE); | 
| #undef DEFINE_MALI_REFCOUNT_EVENT | 
|   | 
| DECLARE_EVENT_CLASS(mali_add_template, | 
|     TP_PROTO(int gpu_addr, unsigned int info_val), | 
|     TP_ARGS(gpu_addr, info_val), | 
|     TP_STRUCT__entry( | 
|         __field(unsigned int, gpu_addr) | 
|         __field(unsigned int, info_val) | 
|     ), | 
|     TP_fast_assign( | 
|         __entry->gpu_addr = gpu_addr; | 
|         __entry->info_val = info_val; | 
|     ), | 
|     TP_printk("gpu_addr=%u info=%u", __entry->gpu_addr, __entry->info_val) | 
| ); | 
|   | 
| #define DEFINE_MALI_ADD_EVENT(name) \ | 
| DEFINE_EVENT(mali_add_template, mali_##name, \ | 
|     TP_PROTO(int gpu_addr, unsigned int info_val), \ | 
|     TP_ARGS(gpu_addr, info_val)) | 
| DEFINE_MALI_ADD_EVENT(CORE_CTX_DESTROY); | 
| DEFINE_MALI_ADD_EVENT(CORE_CTX_HWINSTR_TERM); | 
| DEFINE_MALI_ADD_EVENT(CORE_GPU_IRQ); | 
| DEFINE_MALI_ADD_EVENT(CORE_GPU_IRQ_CLEAR); | 
| DEFINE_MALI_ADD_EVENT(CORE_GPU_IRQ_DONE); | 
| DEFINE_MALI_ADD_EVENT(CORE_GPU_SOFT_RESET); | 
| DEFINE_MALI_ADD_EVENT(CORE_GPU_HARD_RESET); | 
| DEFINE_MALI_ADD_EVENT(CORE_GPU_PRFCNT_SAMPLE); | 
| DEFINE_MALI_ADD_EVENT(CORE_GPU_PRFCNT_CLEAR); | 
| DEFINE_MALI_ADD_EVENT(CORE_GPU_CLEAN_INV_CACHES); | 
| DEFINE_MALI_ADD_EVENT(JD_DONE_WORKER); | 
| DEFINE_MALI_ADD_EVENT(JD_DONE_WORKER_END); | 
| DEFINE_MALI_ADD_EVENT(JD_CANCEL_WORKER); | 
| DEFINE_MALI_ADD_EVENT(JD_DONE); | 
| DEFINE_MALI_ADD_EVENT(JD_CANCEL); | 
| DEFINE_MALI_ADD_EVENT(JD_ZAP_CONTEXT); | 
| DEFINE_MALI_ADD_EVENT(JM_IRQ); | 
| DEFINE_MALI_ADD_EVENT(JM_IRQ_END); | 
| DEFINE_MALI_ADD_EVENT(JM_FLUSH_WORKQS); | 
| DEFINE_MALI_ADD_EVENT(JM_FLUSH_WORKQS_DONE); | 
| DEFINE_MALI_ADD_EVENT(JM_ZAP_NON_SCHEDULED); | 
| DEFINE_MALI_ADD_EVENT(JM_ZAP_SCHEDULED); | 
| DEFINE_MALI_ADD_EVENT(JM_ZAP_DONE); | 
| DEFINE_MALI_ADD_EVENT(JM_SUBMIT_AFTER_RESET); | 
| DEFINE_MALI_ADD_EVENT(JM_JOB_COMPLETE); | 
| DEFINE_MALI_ADD_EVENT(JS_FAST_START_EVICTS_CTX); | 
| DEFINE_MALI_ADD_EVENT(JS_CTX_ATTR_NOW_ON_RUNPOOL); | 
| DEFINE_MALI_ADD_EVENT(JS_CTX_ATTR_NOW_OFF_RUNPOOL); | 
| DEFINE_MALI_ADD_EVENT(JS_CTX_ATTR_NOW_ON_CTX); | 
| DEFINE_MALI_ADD_EVENT(JS_CTX_ATTR_NOW_OFF_CTX); | 
| DEFINE_MALI_ADD_EVENT(JS_POLICY_TIMER_END); | 
| DEFINE_MALI_ADD_EVENT(JS_POLICY_TIMER_START); | 
| DEFINE_MALI_ADD_EVENT(JS_POLICY_ENQUEUE_JOB); | 
| DEFINE_MALI_ADD_EVENT(PM_CORES_CHANGE_DESIRED); | 
| DEFINE_MALI_ADD_EVENT(PM_JOB_SUBMIT_AFTER_POWERING_UP); | 
| DEFINE_MALI_ADD_EVENT(PM_JOB_SUBMIT_AFTER_POWERED_UP); | 
| DEFINE_MALI_ADD_EVENT(PM_PWRON); | 
| DEFINE_MALI_ADD_EVENT(PM_PWRON_TILER); | 
| DEFINE_MALI_ADD_EVENT(PM_PWRON_L2); | 
| DEFINE_MALI_ADD_EVENT(PM_PWROFF); | 
| DEFINE_MALI_ADD_EVENT(PM_PWROFF_TILER); | 
| DEFINE_MALI_ADD_EVENT(PM_PWROFF_L2); | 
| DEFINE_MALI_ADD_EVENT(PM_CORES_POWERED); | 
| DEFINE_MALI_ADD_EVENT(PM_CORES_POWERED_TILER); | 
| DEFINE_MALI_ADD_EVENT(PM_CORES_POWERED_L2); | 
| DEFINE_MALI_ADD_EVENT(PM_DESIRED_REACHED); | 
| DEFINE_MALI_ADD_EVENT(PM_DESIRED_REACHED_TILER); | 
| DEFINE_MALI_ADD_EVENT(PM_UNREQUEST_CHANGE_SHADER_NEEDED); | 
| DEFINE_MALI_ADD_EVENT(PM_REQUEST_CHANGE_SHADER_NEEDED); | 
| DEFINE_MALI_ADD_EVENT(PM_REGISTER_CHANGE_SHADER_NEEDED); | 
| DEFINE_MALI_ADD_EVENT(PM_REGISTER_CHANGE_SHADER_INUSE); | 
| DEFINE_MALI_ADD_EVENT(PM_RELEASE_CHANGE_SHADER_INUSE); | 
| DEFINE_MALI_ADD_EVENT(PM_CORES_AVAILABLE); | 
| DEFINE_MALI_ADD_EVENT(PM_CORES_AVAILABLE_TILER); | 
| DEFINE_MALI_ADD_EVENT(PM_CORES_CHANGE_AVAILABLE); | 
| DEFINE_MALI_ADD_EVENT(PM_CORES_CHANGE_AVAILABLE_TILER); | 
| DEFINE_MALI_ADD_EVENT(PM_GPU_ON); | 
| DEFINE_MALI_ADD_EVENT(PM_GPU_OFF); | 
| DEFINE_MALI_ADD_EVENT(PM_SET_POLICY); | 
| DEFINE_MALI_ADD_EVENT(PM_CURRENT_POLICY_INIT); | 
| DEFINE_MALI_ADD_EVENT(PM_CURRENT_POLICY_TERM); | 
| DEFINE_MALI_ADD_EVENT(PM_CA_SET_POLICY); | 
| DEFINE_MALI_ADD_EVENT(PM_WAKE_WAITERS); | 
| #undef DEFINE_MALI_ADD_EVENT | 
|   | 
| #endif /* _TRACE_MALI_KBASE_H */ | 
|   | 
| #undef TRACE_INCLUDE_PATH | 
| #undef linux | 
| #define TRACE_INCLUDE_PATH . | 
| #undef TRACE_INCLUDE_FILE | 
| #define TRACE_INCLUDE_FILE mali_linux_kbase_trace | 
|   | 
| /* This part must be outside protection */ | 
| #include <trace/define_trace.h> |