1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
|
/* SPDX-License-Identifier: GPL-2.0 */
#undef TRACE_SYSTEM
#define TRACE_SYSTEM qcom_geni_serial
#if !defined(_TRACE_QCOM_GENI_SERIAL_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_QCOM_GENI_SERIAL_H
#include <linux/device.h>
#include <linux/tracepoint.h>
TRACE_EVENT(geni_serial_set_termios,
TP_PROTO(struct device *dev, unsigned int baud,
unsigned int bits_per_char, u32 tx_trans_cfg,
u32 tx_parity_cfg, u32 rx_trans_cfg,
u32 rx_parity_cfg, u32 stop_bit_len),
TP_ARGS(dev, baud, bits_per_char, tx_trans_cfg, tx_parity_cfg,
rx_trans_cfg, rx_parity_cfg, stop_bit_len),
TP_STRUCT__entry(__string(name, dev_name(dev))
__field(unsigned int, baud)
__field(unsigned int, bits_per_char)
__field(u32, tx_trans_cfg)
__field(u32, tx_parity_cfg)
__field(u32, rx_trans_cfg)
__field(u32, rx_parity_cfg)
__field(u32, stop_bit_len)
),
TP_fast_assign(__assign_str(name);
__entry->baud = baud;
__entry->bits_per_char = bits_per_char;
__entry->tx_trans_cfg = tx_trans_cfg;
__entry->tx_parity_cfg = tx_parity_cfg;
__entry->rx_trans_cfg = rx_trans_cfg;
__entry->rx_parity_cfg = rx_parity_cfg;
__entry->stop_bit_len = stop_bit_len;
),
TP_printk("%s: baud=%u bpc=%u tx_trans=0x%08x tx_par=0x%08x rx_trans=0x%08x rx_par=0x%08x stop=%u",
__get_str(name), __entry->baud, __entry->bits_per_char,
__entry->tx_trans_cfg, __entry->tx_parity_cfg,
__entry->rx_trans_cfg, __entry->rx_parity_cfg,
__entry->stop_bit_len)
);
TRACE_EVENT(geni_serial_clk_cfg,
TP_PROTO(struct device *dev, unsigned int desired_rate,
unsigned long clk_rate, unsigned int clk_div,
unsigned int clk_idx),
TP_ARGS(dev, desired_rate, clk_rate, clk_div, clk_idx),
TP_STRUCT__entry(__string(name, dev_name(dev))
__field(unsigned int, desired_rate)
__field(unsigned long, clk_rate)
__field(unsigned int, clk_div)
__field(unsigned int, clk_idx)
),
TP_fast_assign(__assign_str(name);
__entry->desired_rate = desired_rate;
__entry->clk_rate = clk_rate;
__entry->clk_div = clk_div;
__entry->clk_idx = clk_idx;
),
TP_printk("%s: desired_rate=%u clk_rate=%lu clk_div=%u clk_idx=%u",
__get_str(name), __entry->desired_rate, __entry->clk_rate,
__entry->clk_div, __entry->clk_idx)
);
TRACE_EVENT(geni_serial_irq,
TP_PROTO(struct device *dev, u32 m_irq, u32 s_irq,
u32 dma_tx, u32 dma_rx),
TP_ARGS(dev, m_irq, s_irq, dma_tx, dma_rx),
TP_STRUCT__entry(__string(name, dev_name(dev))
__field(u32, m_irq)
__field(u32, s_irq)
__field(u32, dma_tx)
__field(u32, dma_rx)
),
TP_fast_assign(__assign_str(name);
__entry->m_irq = m_irq;
__entry->s_irq = s_irq;
__entry->dma_tx = dma_tx;
__entry->dma_rx = dma_rx;
),
TP_printk("%s: m_irq=0x%08x s_irq=0x%08x dma_tx=0x%08x dma_rx=0x%08x",
__get_str(name), __entry->m_irq, __entry->s_irq,
__entry->dma_tx, __entry->dma_rx)
);
DECLARE_EVENT_CLASS(geni_serial_data,
TP_PROTO(struct device *dev, const u8 *buf, unsigned int len),
TP_ARGS(dev, buf, len),
TP_STRUCT__entry(__string(name, dev_name(dev))
__field(unsigned int, len)
__dynamic_array(u8, data, len)
),
TP_fast_assign(__assign_str(name);
__entry->len = len;
memcpy(__get_dynamic_array(data), buf, len);
),
TP_printk("%s: len=%u data=%s",
__get_str(name), __entry->len,
__print_hex(__get_dynamic_array(data), __entry->len))
);
DEFINE_EVENT(geni_serial_data, geni_serial_tx_data,
TP_PROTO(struct device *dev, const u8 *buf, unsigned int len),
TP_ARGS(dev, buf, len)
);
DEFINE_EVENT(geni_serial_data, geni_serial_rx_data,
TP_PROTO(struct device *dev, const u8 *buf, unsigned int len),
TP_ARGS(dev, buf, len)
);
TRACE_EVENT(geni_serial_set_mctrl,
TP_PROTO(struct device *dev, unsigned int mctrl,
u32 uart_manual_rfr),
TP_ARGS(dev, mctrl, uart_manual_rfr),
TP_STRUCT__entry(__string(name, dev_name(dev))
__field(unsigned int, mctrl)
__field(u32, uart_manual_rfr)
),
TP_fast_assign(__assign_str(name);
__entry->mctrl = mctrl;
__entry->uart_manual_rfr = uart_manual_rfr;
),
TP_printk("%s: mctrl=0x%04x uart_manual_rfr=0x%08x",
__get_str(name), __entry->mctrl, __entry->uart_manual_rfr)
);
TRACE_EVENT(geni_serial_get_mctrl,
TP_PROTO(struct device *dev, unsigned int mctrl, u32 geni_ios),
TP_ARGS(dev, mctrl, geni_ios),
TP_STRUCT__entry(__string(name, dev_name(dev))
__field(unsigned int, mctrl)
__field(u32, geni_ios)
),
TP_fast_assign(__assign_str(name);
__entry->mctrl = mctrl;
__entry->geni_ios = geni_ios;
),
TP_printk("%s: mctrl=0x%04x geni_ios=0x%08x",
__get_str(name), __entry->mctrl, __entry->geni_ios)
);
#endif /* _TRACE_QCOM_GENI_SERIAL_H */
/* This part must be outside protection */
#include <trace/define_trace.h>
|