85 lines
2.0 KiB
C
85 lines
2.0 KiB
C
/* Copyright (c) 2012-2015, The Linux Foundation. All rights reserved.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 and
|
|
* only version 2 as published by the Free Software Foundation.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
*/
|
|
|
|
#ifndef __MSM_BA_DEBUG__
|
|
#define __MSM_BA_DEBUG__
|
|
#include <linux/debugfs.h>
|
|
#include <linux/delay.h>
|
|
#include "msm_ba_internal.h"
|
|
|
|
#ifndef BA_DBG_LABEL
|
|
#define BA_DBG_LABEL "msm_ba"
|
|
#endif
|
|
|
|
#define BA_DBG_TAG BA_DBG_LABEL "(%d): %4s: "
|
|
|
|
/* To enable messages OR these values and
|
|
* echo the result to debugfs file.
|
|
*
|
|
* To enable all messages set debug_level = 0x001F
|
|
*/
|
|
|
|
enum ba_msg_prio {
|
|
BA_ERR = 0x0001,
|
|
BA_WARN = 0x0002,
|
|
BA_INFO = 0x0004,
|
|
BA_DBG = 0x0008,
|
|
BA_PROF = 0x0010
|
|
};
|
|
|
|
enum ba_msg_out {
|
|
BA_OUT_PRINTK = 0,
|
|
BA_OUT_FTRACE
|
|
};
|
|
|
|
extern int msm_ba_debug;
|
|
extern int msm_ba_debug_out;
|
|
|
|
#define BA_MSG_PRIO2STRING(__level) ({ \
|
|
char *__str; \
|
|
\
|
|
__str = (__level == BA_ERR ? "err" : \
|
|
(__level == BA_WARN ? "warn" : \
|
|
(__level == BA_INFO ? "info" : \
|
|
(__level == BA_DBG ? "dbg" : \
|
|
(__level == BA_PROF ? "prof" : "????"))))); \
|
|
\
|
|
__str; \
|
|
})
|
|
|
|
#define dprintk(__level, __fmt, arg...) \
|
|
do { \
|
|
if (msm_ba_debug & __level) { \
|
|
if (msm_ba_debug_out == BA_OUT_PRINTK) { \
|
|
pr_info(BA_DBG_TAG __fmt "\n", \
|
|
__LINE__, \
|
|
BA_MSG_PRIO2STRING(__level), \
|
|
## arg); \
|
|
} else if (msm_ba_debug_out == BA_OUT_FTRACE) { \
|
|
trace_printk(KERN_DEBUG BA_DBG_TAG __fmt "\n", \
|
|
__LINE__, \
|
|
BA_MSG_PRIO2STRING(__level), \
|
|
## arg); \
|
|
} \
|
|
} \
|
|
} while (0)
|
|
|
|
|
|
struct dentry *msm_ba_debugfs_init_drv(void);
|
|
struct dentry *msm_ba_debugfs_init_dev(struct msm_ba_dev *dev_ctxt,
|
|
struct dentry *parent);
|
|
struct dentry *msm_ba_debugfs_init_inst(struct msm_ba_inst *inst,
|
|
struct dentry *parent);
|
|
|
|
#endif
|