105491d2cSKalle Valo /* 205491d2cSKalle Valo * Copyright (c) 2011 Broadcom Corporation 305491d2cSKalle Valo * 405491d2cSKalle Valo * Permission to use, copy, modify, and/or distribute this software for any 505491d2cSKalle Valo * purpose with or without fee is hereby granted, provided that the above 605491d2cSKalle Valo * copyright notice and this permission notice appear in all copies. 705491d2cSKalle Valo * 805491d2cSKalle Valo * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 905491d2cSKalle Valo * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 1005491d2cSKalle Valo * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 1105491d2cSKalle Valo * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 1205491d2cSKalle Valo * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 1305491d2cSKalle Valo * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 1405491d2cSKalle Valo * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 1505491d2cSKalle Valo */ 1605491d2cSKalle Valo 1705491d2cSKalle Valo #if !defined(__TRACE_BRCMSMAC_H) || defined(TRACE_HEADER_MULTI_READ) 1805491d2cSKalle Valo #define __TRACE_BRCMSMAC_H 1905491d2cSKalle Valo 2005491d2cSKalle Valo #include <linux/tracepoint.h> 2105491d2cSKalle Valo 2205491d2cSKalle Valo #undef TRACE_SYSTEM 2305491d2cSKalle Valo #define TRACE_SYSTEM brcmsmac 2405491d2cSKalle Valo 2505491d2cSKalle Valo /* 2605491d2cSKalle Valo * We define a tracepoint, its arguments, its printk format and its 2705491d2cSKalle Valo * 'fast binary record' layout. 2805491d2cSKalle Valo */ 2905491d2cSKalle Valo TRACE_EVENT(brcms_timer, 3005491d2cSKalle Valo /* TPPROTO is the prototype of the function called by this tracepoint */ 3105491d2cSKalle Valo TP_PROTO(struct brcms_timer *t), 3205491d2cSKalle Valo /* 3305491d2cSKalle Valo * TPARGS(firstarg, p) are the parameters names, same as found in the 3405491d2cSKalle Valo * prototype. 3505491d2cSKalle Valo */ 3605491d2cSKalle Valo TP_ARGS(t), 3705491d2cSKalle Valo /* 3805491d2cSKalle Valo * Fast binary tracing: define the trace record via TP_STRUCT__entry(). 3905491d2cSKalle Valo * You can think about it like a regular C structure local variable 4005491d2cSKalle Valo * definition. 4105491d2cSKalle Valo */ 4205491d2cSKalle Valo TP_STRUCT__entry( 4305491d2cSKalle Valo __field(uint, ms) 4405491d2cSKalle Valo __field(uint, set) 4505491d2cSKalle Valo __field(uint, periodic) 4605491d2cSKalle Valo ), 4705491d2cSKalle Valo TP_fast_assign( 4805491d2cSKalle Valo __entry->ms = t->ms; 4905491d2cSKalle Valo __entry->set = t->set; 5005491d2cSKalle Valo __entry->periodic = t->periodic; 5105491d2cSKalle Valo ), 5205491d2cSKalle Valo TP_printk( 5305491d2cSKalle Valo "ms=%u set=%u periodic=%u", 5405491d2cSKalle Valo __entry->ms, __entry->set, __entry->periodic 5505491d2cSKalle Valo ) 5605491d2cSKalle Valo ); 5705491d2cSKalle Valo 5805491d2cSKalle Valo TRACE_EVENT(brcms_dpc, 5905491d2cSKalle Valo TP_PROTO(unsigned long data), 6005491d2cSKalle Valo TP_ARGS(data), 6105491d2cSKalle Valo TP_STRUCT__entry( 6205491d2cSKalle Valo __field(unsigned long, data) 6305491d2cSKalle Valo ), 6405491d2cSKalle Valo TP_fast_assign( 6505491d2cSKalle Valo __entry->data = data; 6605491d2cSKalle Valo ), 6705491d2cSKalle Valo TP_printk( 6805491d2cSKalle Valo "data=%p", 6905491d2cSKalle Valo (void *)__entry->data 7005491d2cSKalle Valo ) 7105491d2cSKalle Valo ); 7205491d2cSKalle Valo 7305491d2cSKalle Valo TRACE_EVENT(brcms_macintstatus, 7405491d2cSKalle Valo TP_PROTO(const struct device *dev, int in_isr, u32 macintstatus, 7505491d2cSKalle Valo u32 mask), 7605491d2cSKalle Valo TP_ARGS(dev, in_isr, macintstatus, mask), 7705491d2cSKalle Valo TP_STRUCT__entry( 7805491d2cSKalle Valo __string(dev, dev_name(dev)) 7905491d2cSKalle Valo __field(int, in_isr) 8005491d2cSKalle Valo __field(u32, macintstatus) 8105491d2cSKalle Valo __field(u32, mask) 8205491d2cSKalle Valo ), 8305491d2cSKalle Valo TP_fast_assign( 8405491d2cSKalle Valo __assign_str(dev, dev_name(dev)); 8505491d2cSKalle Valo __entry->in_isr = in_isr; 8605491d2cSKalle Valo __entry->macintstatus = macintstatus; 8705491d2cSKalle Valo __entry->mask = mask; 8805491d2cSKalle Valo ), 8905491d2cSKalle Valo TP_printk("[%s] in_isr=%d macintstatus=%#x mask=%#x", __get_str(dev), 9005491d2cSKalle Valo __entry->in_isr, __entry->macintstatus, __entry->mask) 9105491d2cSKalle Valo ); 9205491d2cSKalle Valo #endif /* __TRACE_BRCMSMAC_H */ 9305491d2cSKalle Valo 9405491d2cSKalle Valo #ifdef CONFIG_BRCM_TRACING 9505491d2cSKalle Valo 9605491d2cSKalle Valo #undef TRACE_INCLUDE_PATH 9705491d2cSKalle Valo #define TRACE_INCLUDE_PATH . 9805491d2cSKalle Valo #undef TRACE_INCLUDE_FILE 9905491d2cSKalle Valo #define TRACE_INCLUDE_FILE brcms_trace_brcmsmac 10005491d2cSKalle Valo #include <trace/define_trace.h> 10105491d2cSKalle Valo 10205491d2cSKalle Valo #endif /* CONFIG_BRCM_TRACING */ 103