| /* SPDX-License-Identifier: GPL-2.0 */ |
| /* |
| * Copyright (c) 2019 MediaTek Inc. |
| */ |
| |
| #ifndef __ADSP_LOGGER_H__ |
| #define __ADSP_LOGGER_H__ |
| |
| #define ADSP_LOGGER_UT (1) |
| |
| struct log_ctrl_s { /* ap used */ |
| unsigned int inited; |
| struct mutex lock; |
| struct delayed_work work; |
| void *priv; |
| }; |
| |
| struct log_info_s { /* adsp & ap shared */ |
| unsigned int base; |
| unsigned int size; |
| unsigned int enable; |
| unsigned int info_ofs; |
| unsigned int buff_ofs; |
| unsigned int buff_size; |
| }; |
| |
| struct buffer_info_s { |
| unsigned int r_pos; |
| unsigned char resv1[124]; /* dummy bytes for 128-byte align */ |
| unsigned int w_pos; |
| unsigned char resv2[124]; /* dummy bytes for 128-byte align */ |
| }; |
| |
| struct log_ctrl_s *adsp_logger_init(int mem_id, |
| void (*work_cb)(struct work_struct *ws)); |
| unsigned int adsp_log_poll(struct log_ctrl_s *ctrl); |
| ssize_t adsp_log_read(struct log_ctrl_s *ctrl, char __user *userbuf, |
| size_t len); |
| ssize_t adsp_log_enable(struct log_ctrl_s *ctrl, int cid, u32 enable); |
| ssize_t adsp_dump_log_state(struct log_ctrl_s *ctrl, char *buffer, int size); |
| |
| #endif /* __ADSP_LOGGER_H__ */ |
| |