1/* SPDX-License-Identifier: GPL-2.0 */ 2#undef TRACE_SYSTEM 3#define TRACE_SYSTEM hda 4 5#if !defined(__HDAC_TRACE_H) || defined(TRACE_HEADER_MULTI_READ) 6#define __HDAC_TRACE_H 7 8#include <linux/tracepoint.h> 9#include <linux/device.h> 10#include <sound/hdaudio.h> 11 12#ifndef HDAC_MSG_MAX 13#define HDAC_MSG_MAX 500 14#endif 15 16struct hdac_bus; 17struct hdac_codec; 18 19TRACE_EVENT(hda_send_cmd, 20 TP_PROTO(struct hdac_bus *bus, unsigned int cmd), 21 TP_ARGS(bus, cmd), 22 TP_STRUCT__entry( 23 __string(name, dev_name((bus)->dev)) 24 __field(u32, cmd) 25 ), 26 TP_fast_assign( 27 __assign_str(name, dev_name((bus)->dev)); 28 __entry->cmd = cmd; 29 ), 30 TP_printk("[%s:%d] val=0x%08x", __get_str(name), __entry->cmd >> 28, __entry->cmd) 31); 32 33TRACE_EVENT(hda_get_response, 34 TP_PROTO(struct hdac_bus *bus, unsigned int addr, unsigned int res), 35 TP_ARGS(bus, addr, res), 36 TP_STRUCT__entry( 37 __string(name, dev_name((bus)->dev)) 38 __field(u32, addr) 39 __field(u32, res) 40 ), 41 TP_fast_assign( 42 __assign_str(name, dev_name((bus)->dev)); 43 __entry->addr = addr; 44 __entry->res = res; 45 ), 46 TP_printk("[%s:%d] val=0x%08x", __get_str(name), __entry->addr, __entry->res) 47); 48 49TRACE_EVENT(hda_unsol_event, 50 TP_PROTO(struct hdac_bus *bus, u32 res, u32 res_ex), 51 TP_ARGS(bus, res, res_ex), 52 TP_STRUCT__entry( 53 __string(name, dev_name((bus)->dev)) 54 __field(u32, res) 55 __field(u32, res_ex) 56 ), 57 TP_fast_assign( 58 __assign_str(name, dev_name((bus)->dev)); 59 __entry->res = res; 60 __entry->res_ex = res_ex; 61 ), 62 TP_printk("[%s:%d] res=0x%08x, res_ex=0x%08x", __get_str(name), 63 __entry->res_ex & 0x0f, __entry->res, __entry->res_ex) 64); 65 66DECLARE_EVENT_CLASS(hdac_stream, 67 TP_PROTO(struct hdac_bus *bus, struct hdac_stream *azx_dev), 68 69 TP_ARGS(bus, azx_dev), 70 71 TP_STRUCT__entry( 72 __field(unsigned char, stream_tag) 73 ), 74 75 TP_fast_assign( 76 __entry->stream_tag = (azx_dev)->stream_tag; 77 ), 78 79 TP_printk("stream_tag: %d", __entry->stream_tag) 80); 81 82DEFINE_EVENT(hdac_stream, snd_hdac_stream_start, 83 TP_PROTO(struct hdac_bus *bus, struct hdac_stream *azx_dev), 84 TP_ARGS(bus, azx_dev) 85); 86 87DEFINE_EVENT(hdac_stream, snd_hdac_stream_stop, 88 TP_PROTO(struct hdac_bus *bus, struct hdac_stream *azx_dev), 89 TP_ARGS(bus, azx_dev) 90); 91 92#endif /* __HDAC_TRACE_H */ 93 94/* This part must be outside protection */ 95#undef TRACE_INCLUDE_PATH 96#define TRACE_INCLUDE_PATH . 97 98#undef TRACE_INCLUDE_FILE 99#define TRACE_INCLUDE_FILE trace 100 101#include <trace/define_trace.h> 102