printk用法
1,定义
enum{
DEBUG_INIT = 1U << 0,
DEBUG_SUSPEND = 1U << 1,
DEBUG_INT_INFO = 1U << 2,
DEBUG_X_Y_INFO = 1U << 3,
DEBUG_KEY_INFO = 1U << 4,
DEBUG_WAKEUP_INFO = 1U << 5,
DEBUG_OTHERS_INFO = 1U << 6,
};
//static u32 debug_mask = 0;
static u32 debug_mask = DEBUG_INIT \
| DEBUG_SUSPEND \
| DEBUG_INT_INFO \
| DEBUG_X_Y_INFO \
| DEBUG_KEY_INFO \
| DEBUG_WAKEUP_INFO \
| DEBUG_OTHERS_INFO \
| DEBUG_PROCESS_INFO \
| DEBUG_TRACK_INFO \
;
#define dprintk(level_mask,fmt,arg...) if(unlikely(debug_mask & level_mask)) \
printk("[CTP]:"fmt, ## arg)
module_param_named(debug_mask,debug_mask,int,S_IRUGO | S_IWUSR | S_IWGRP);
dprintk(DEBUG_INIT, "i2c write failed\n");
dprintk(DEBUG_KEY_INFO, "===KEY 1====\n");
等等...