kernel_samsung_a53x/include/soc/samsung/debug-snapshot-log.h
2024-06-15 16:02:09 -03:00

199 lines
4 KiB
C
Executable file

#ifndef DEBUG_SNAPSHOT_LOG_H
#define DEBUG_SNAPSHOT_LOG_H
#include <linux/clk-provider.h>
#include <soc/samsung/debug-snapshot.h>
/* Length domain */
#define DSS_LOG_STRING_LEN SZ_128
#define DSS_DOMAIN_NUM CONFIG_DEBUG_SNAPSHOT_FREQ_DOMAIN_NUM
#define DSS_LOG_MAX_NUM CONFIG_DEBUG_SNAPSHOT_LOG_ITEM_SIZE
#define DSS_CALLSTACK_MAX_NUM 3
#define DSS_NR_CPUS 8
#define TASK_COMM_LEN 16
struct task_log {
unsigned long long time;
struct task_struct *task;
char task_comm[TASK_COMM_LEN];
int pid;
};
struct work_log {
unsigned long long time;
struct worker *worker;
work_func_t fn;
char task_comm[TASK_COMM_LEN];
int en;
};
struct cpuidle_log {
unsigned long long time;
char *modes;
unsigned int state;
u32 num_online_cpus;
int delta;
int en;
};
struct suspend_log {
unsigned long long time;
const char *log;
const char *dev;
int en;
int event;
int core;
};
struct irq_log {
unsigned long long time;
int irq;
void *fn;
struct irq_desc *desc;
unsigned long long latency;
int en;
};
struct clk_log {
unsigned long long time;
struct clk_hw *clk;
const char *f_name;
int mode;
unsigned int arg;
};
struct pmu_log {
unsigned long long time;
unsigned int id;
const char *f_name;
int mode;
};
struct freq_log {
unsigned long long time;
int cpu;
unsigned int old_freq;
unsigned int target_freq;
int en;
};
struct dm_log {
unsigned long long time;
int cpu;
int dm_num;
unsigned int min_freq;
unsigned int max_freq;
s32 wait_dmt;
s32 do_dmt;
};
struct hrtimer_log {
unsigned long long time;
unsigned long long now;
struct hrtimer *timer;
void *fn;
int en;
};
struct regulator_log {
unsigned long long time;
unsigned long long acpm_time;
int cpu;
char name[SZ_16];
unsigned int reg;
unsigned int voltage;
unsigned int raw_volt;
int en;
};
struct thermal_log {
unsigned long long time;
int cpu;
unsigned int temp;
struct exynos_tmu_data *data;
char *cooling_device;
unsigned long long cooling_state;
};
struct acpm_log {
unsigned long long time;
unsigned long long acpm_time;
char log[9];
unsigned int data;
};
struct print_log {
unsigned long long time;
int cpu;
char log[DSS_LOG_STRING_LEN];
};
struct reg_log {
unsigned long long time;
unsigned char io_type;
unsigned int data_type;
unsigned long long val;
void *addr;
void *caller;
};
struct dbg_snapshot_log {
struct task_log task[DSS_NR_CPUS][DSS_LOG_MAX_NUM];
struct work_log work[DSS_NR_CPUS][DSS_LOG_MAX_NUM];
struct cpuidle_log cpuidle[DSS_NR_CPUS][DSS_LOG_MAX_NUM];
struct suspend_log suspend[DSS_LOG_MAX_NUM * 2];
struct irq_log irq[DSS_NR_CPUS][DSS_LOG_MAX_NUM * 4];
struct clk_log clk[DSS_LOG_MAX_NUM];
struct pmu_log pmu[DSS_LOG_MAX_NUM];
struct freq_log freq[DSS_DOMAIN_NUM][DSS_LOG_MAX_NUM / 2];
struct dm_log dm[DSS_LOG_MAX_NUM];
struct hrtimer_log hrtimer[DSS_NR_CPUS][DSS_LOG_MAX_NUM];
struct reg_log reg[DSS_NR_CPUS][DSS_LOG_MAX_NUM * 2];
struct regulator_log regulator[DSS_LOG_MAX_NUM];
struct thermal_log thermal[DSS_LOG_MAX_NUM];
struct acpm_log acpm[DSS_LOG_MAX_NUM];
struct print_log print[DSS_LOG_MAX_NUM];
};
struct dbg_snapshot_log_minimized {
struct task_log task[DSS_NR_CPUS][256];
struct work_log work[DSS_NR_CPUS][256];
struct cpuidle_log cpuidle[DSS_NR_CPUS][16];
struct irq_log irq[DSS_NR_CPUS][1024];
struct freq_log freq[DSS_DOMAIN_NUM][128];
};
enum dbg_snapshot_log_type {
eDSS_LOG_TYPE_NONE,
eDSS_LOG_TYPE_DEFAULT,
eDSS_LOG_TYPE_MINIMIZED,
};
struct dbg_snapshot_kevents {
enum dbg_snapshot_log_type type;
union {
struct dbg_snapshot_log *default_log;
struct dbg_snapshot_log_minimized *minimized_log;
};
};
struct dbg_snapshot_log_misc {
atomic_t task_log_idx[DSS_NR_CPUS];
atomic_t work_log_idx[DSS_NR_CPUS];
atomic_t cpuidle_log_idx[DSS_NR_CPUS];
atomic_t suspend_log_idx;
atomic_t irq_log_idx[DSS_NR_CPUS];
atomic_t hrtimer_log_idx[DSS_NR_CPUS];
atomic_t reg_log_idx[DSS_NR_CPUS];
atomic_t clk_log_idx;
atomic_t pmu_log_idx;
atomic_t freq_log_idx[DSS_DOMAIN_NUM];
atomic_t dm_log_idx;
atomic_t regulator_log_idx;
atomic_t thermal_log_idx;
atomic_t print_log_idx;
atomic_t acpm_log_idx;
};
#endif