| /* |
| * Samsung Exynos SoC series VIPx driver |
| * |
| * Copyright (c) 2018 Samsung Electronics Co., Ltd |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License version 2 as |
| * published by the Free Software Foundation. |
| */ |
| |
| #ifndef __VIPX_DEBUG_H__ |
| #define __VIPX_DEBUG_H__ |
| |
| #include <linux/timer.h> |
| |
| #include "vipx-config.h" |
| #include "vipx-system.h" |
| |
| struct vipx_device; |
| |
| enum vipx_debug_state { |
| VIPX_DEBUG_STATE_START, |
| }; |
| |
| struct vipx_debug_log_area { |
| int front; |
| int rear; |
| int line_size; |
| int queue_size; |
| int reserved[4]; |
| char queue[0]; |
| }; |
| |
| struct vipx_debug_log { |
| struct timer_list timer; |
| struct vipx_debug_log_area *area; |
| }; |
| |
| struct vipx_debug { |
| unsigned long state; |
| struct vipx_system *system; |
| struct vipx_debug_log target_log; |
| |
| int log_bin_enable; |
| |
| struct dentry *root; |
| struct dentry *mem; |
| struct dentry *log; |
| struct dentry *log_bin; |
| struct dentry *devfreq; |
| struct dentry *clk; |
| struct dentry *wait_time; |
| struct dentry *power; |
| }; |
| |
| extern int vipx_debug_log_enable; |
| |
| int vipx_debug_write_log_binary(void); |
| int vipx_debug_dump_debug_regs(void); |
| void vipx_debug_log_flush(struct vipx_debug *debug); |
| |
| int vipx_debug_start(struct vipx_debug *debug); |
| int vipx_debug_stop(struct vipx_debug *debug); |
| int vipx_debug_open(struct vipx_debug *debug); |
| int vipx_debug_close(struct vipx_debug *debug); |
| |
| int vipx_debug_probe(struct vipx_device *device); |
| void vipx_debug_remove(struct vipx_debug *debug); |
| |
| #endif |