1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
2 | /* |
3 | * Tegra host1x Debug |
4 | * |
5 | * Copyright (c) 2011-2013 NVIDIA Corporation. |
6 | */ |
7 | #ifndef __HOST1X_DEBUG_H |
8 | #define __HOST1X_DEBUG_H |
9 | |
10 | #include <linux/debugfs.h> |
11 | #include <linux/seq_file.h> |
12 | |
13 | struct host1x; |
14 | |
15 | struct output { |
16 | void (*fn)(void *ctx, const char *str, size_t len, bool cont); |
17 | void *ctx; |
18 | char buf[256]; |
19 | }; |
20 | |
21 | static inline void write_to_seqfile(void *ctx, const char *str, size_t len, |
22 | bool cont) |
23 | { |
24 | seq_write(seq: (struct seq_file *)ctx, data: str, len); |
25 | } |
26 | |
27 | static inline void write_to_printk(void *ctx, const char *str, size_t len, |
28 | bool cont) |
29 | { |
30 | if (cont) |
31 | pr_cont("%s" , str); |
32 | else |
33 | pr_info("%s" , str); |
34 | } |
35 | |
36 | void __printf(2, 3) host1x_debug_output(struct output *o, const char *fmt, ...); |
37 | void __printf(2, 3) host1x_debug_cont(struct output *o, const char *fmt, ...); |
38 | |
39 | extern unsigned int host1x_debug_trace_cmdbuf; |
40 | |
41 | void host1x_debug_init(struct host1x *host1x); |
42 | void host1x_debug_deinit(struct host1x *host1x); |
43 | void host1x_debug_dump(struct host1x *host1x); |
44 | void host1x_debug_dump_syncpts(struct host1x *host1x); |
45 | |
46 | #endif |
47 | |