123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- /* SPDX-License-Identifier: GPL-2.0-only */
- /*
- * Copyright (c) 2019, The Linux Foundation. All rights reserved.
- * Copyright (c) 2022-2023, Qualcomm Innovation Center, Inc. All rights reserved.
- */
- #ifndef __SYNX_DEBUGFS_H__
- #define __SYNX_DEBUGFS_H__
- #include <linux/debugfs.h>
- #include <linux/delay.h>
- #include "synx_private.h"
- //#define ENABLE_DEBUGFS
- #define STATE_NAME_SPACE (4)
- enum synx_debug_level {
- SYNX_ERR = 0x0001,
- SYNX_WARN = 0x0002,
- SYNX_INFO = 0x0004,
- SYNX_DBG = 0x0008,
- SYNX_VERB = 0x0010,
- SYNX_IPCL = 0x0020,
- SYNX_GSM = 0x0040,
- SYNX_MEM = 0x0080,
- SYNX_ALL = SYNX_ERR | SYNX_WARN | SYNX_INFO |
- SYNX_DBG | SYNX_IPCL | SYNX_GSM | SYNX_MEM,
- };
- enum synx_columns_level {
- NAME_COLUMN = 0x00000001,
- ID_COLUMN = 0x00000002,
- BOUND_COLUMN = 0x00000004,
- STATUS_COLUMN = 0x00000008,
- FENCE_COLUMN = 0x00000010,
- COREDATA_COLUMN = 0x00000020,
- GLOBAL_IDX_COLUMN = 0x00000040,
- REL_CNT_COLUMN = 0x00000080,
- MAP_CNT_COLUMN = 0x00000100,
- REF_CNT_COLUMN = 0x00000200,
- NUM_CHILD_COLUMN = 0x00000400,
- SUBSCRIBERS_COLUMN = 0x00000800,
- WAITERS_COLUMN = 0x00001000,
- PARENTS_COLUMN = 0x00002000,
- CLIENT_ID_COLUMN = 0x00004000,
- LOCAL_HASHTABLE = 0x00010000,
- GLOBAL_HASHTABLE = 0x00020000,
- CLIENT_HASHTABLE = 0x00040000,
- GLOBAL_SHARED_MEM = 0x00080000,
- DMA_FENCE_MAP = 0x00100000,
- CSL_FENCE_MAP = 0x00200000,
- ERROR_CODES = 0x00008000,
- };
- #ifndef SYNX_DBG_LABEL
- #define SYNX_DBG_LABEL "synx"
- #endif
- #define SYNX_DBG_TAG SYNX_DBG_LABEL ": %4s: "
- extern int synx_debug;
- extern u32 lower_handle_id, upper_handle_id;
- extern long synx_columns;
- static inline char *synx_debug_str(int level)
- {
- switch (level) {
- case SYNX_ERR:
- return "err";
- case SYNX_WARN:
- return "warn";
- case SYNX_INFO:
- return "info";
- case SYNX_DBG:
- return "dbg";
- case SYNX_VERB:
- return "verb";
- case SYNX_IPCL:
- return "ipcl";
- case SYNX_GSM:
- return "gmem";
- case SYNX_MEM:
- return "mem";
- default:
- return "???";
- }
- }
- #define dprintk(__level, __fmt, arg...) \
- do { \
- if (synx_debug & __level) { \
- pr_info(SYNX_DBG_TAG "%s: %d: " __fmt, \
- synx_debug_str(__level), __func__, \
- __LINE__, ## arg); \
- } \
- } while (0)
- #define SYNX_CONSOLE_LOG(__cur, __end, \
- __fmt_string, arg...) \
- do { \
- if ((__end - __cur) * (sizeof(char *)) \
- - strlen(__fmt_string) <= STATE_NAME_SPACE) \
- dprintk(SYNX_DBG, __fmt_string, ## arg); \
- else \
- __cur += scnprintf(__cur, __end - __cur, \
- __fmt_string, ## arg); \
- } while (0)
- #define SYNX_READ_CHAR(__buf, __num, \
- __base, __pos) \
- do { \
- if (__buf[__pos] >= '0' && \
- __buf[__pos] <= '9') \
- __num = __num * __base + \
- (__buf[__pos] - '0'); \
- else if (__buf[__pos] >= 'a' && \
- __buf[__pos] <= 'f') \
- __num = __num * __base + \
- (__buf[__pos] - 'a' + 10); \
- else if (__buf[__pos] >= 'A' && \
- __buf[__pos] <= 'F') \
- __num = __num * __base + \
- (__buf[__pos] - 'A' + 10); \
- else \
- invalid_val = true; \
- } while (0)
- /**
- * synx_init_debugfs_dir - Initializes debugfs
- *
- * @param dev : Pointer to synx device structure
- */
- struct dentry *synx_init_debugfs_dir(struct synx_device *dev);
- /**
- * synx_remove_debugfs_dir - Removes debugfs
- *
- * @param dev : Pointer to synx device structure
- */
- void synx_remove_debugfs_dir(struct synx_device *dev);
- #endif /* __SYNX_DEBUGFS_H__ */
|