| /* |
| * Copyright (c) 2018 Samsung Electronics Co., Ltd. |
| * http://www.samsung.com |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License as published by |
| * the Free Software Foundation; either version 2 of the License, or |
| * (at your option) any later version. |
| */ |
| |
| #ifndef __EXYNOS_BCM_DBG_DUMP_H_ |
| #define __EXYNOS_BCM_DBG_DUMP_H_ |
| |
| /* BCM DUMP format definition */ |
| #define BCM_DUMP_PRE_DEFINE_SHIFT (16) |
| #define BCM_DUMP_MAX_STR (4 * 1024) |
| |
| struct exynos_bcm_out_data { |
| u32 ccnt; |
| u32 pmcnt[BCM_EVT_EVENT_MAX]; |
| }; |
| |
| struct exynos_bcm_dump_info { |
| /* |
| * dump_header: |
| * [31] = dump validation |
| * [18:16] = pre-defined event index |
| * [5:0] = BCM IP index |
| */ |
| u32 dump_header; |
| u32 dump_seq_no; |
| u32 dump_time; |
| struct exynos_bcm_out_data out_data; |
| } __attribute__((packed)); |
| |
| #ifdef CONFIG_EXYNOS_BCM_DBG_DUMP |
| int exynos_bcm_dbg_buffer_dump(struct exynos_bcm_dbg_data *data, bool klog); |
| #else |
| #define exynos_bcm_dbg_buffer_dump(a, b) do {} while (0) |
| #endif |
| |
| #endif /* __EXYNOS_BCM_DBG_DUMP_H_ */ |