mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-21 08:19:28 +00:00
![Mikko Perttunen](/assets/img/avatar_default.png)
The host1x driver prints out "disassembly" dumps of the command FIFO and gather contents on submission timeouts. However, the output has been quite difficult to read with unnecessary newlines and occasional missing parentheses. Fix these problems by using pr_cont to remove unnecessary newlines and by fixing other small issues. Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com> Reviewed-by: Dmitry Osipenko <digetx@gmail.com> Tested-by: Dmitry Osipenko <digetx@gmail.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
57 lines
1.6 KiB
C
57 lines
1.6 KiB
C
/*
|
|
* Tegra host1x Debug
|
|
*
|
|
* Copyright (c) 2011-2013 NVIDIA Corporation.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
* under the terms and conditions of the GNU General Public License,
|
|
* version 2, as published by the Free Software Foundation.
|
|
*
|
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
* more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
#ifndef __HOST1X_DEBUG_H
|
|
#define __HOST1X_DEBUG_H
|
|
|
|
#include <linux/debugfs.h>
|
|
#include <linux/seq_file.h>
|
|
|
|
struct host1x;
|
|
|
|
struct output {
|
|
void (*fn)(void *ctx, const char *str, size_t len, bool cont);
|
|
void *ctx;
|
|
char buf[256];
|
|
};
|
|
|
|
static inline void write_to_seqfile(void *ctx, const char *str, size_t len,
|
|
bool cont)
|
|
{
|
|
seq_write((struct seq_file *)ctx, str, len);
|
|
}
|
|
|
|
static inline void write_to_printk(void *ctx, const char *str, size_t len,
|
|
bool cont)
|
|
{
|
|
if (cont)
|
|
pr_cont("%s", str);
|
|
else
|
|
pr_info("%s", str);
|
|
}
|
|
|
|
void __printf(2, 3) host1x_debug_output(struct output *o, const char *fmt, ...);
|
|
void __printf(2, 3) host1x_debug_cont(struct output *o, const char *fmt, ...);
|
|
|
|
extern unsigned int host1x_debug_trace_cmdbuf;
|
|
|
|
void host1x_debug_init(struct host1x *host1x);
|
|
void host1x_debug_deinit(struct host1x *host1x);
|
|
void host1x_debug_dump(struct host1x *host1x);
|
|
void host1x_debug_dump_syncpts(struct host1x *host1x);
|
|
|
|
#endif
|