1*43ecec16SMauro Carvalho Chehab /* SPDX-License-Identifier: GPL-2.0-only */
2*43ecec16SMauro Carvalho Chehab /*
3*43ecec16SMauro Carvalho Chehab  * drivers/media/platform/samsung/s5p-mfc/s5p_mfc_debug.h
4*43ecec16SMauro Carvalho Chehab  *
5*43ecec16SMauro Carvalho Chehab  * Header file for Samsung MFC (Multi Function Codec - FIMV) driver
6*43ecec16SMauro Carvalho Chehab  * This file contains debug macros
7*43ecec16SMauro Carvalho Chehab  *
8*43ecec16SMauro Carvalho Chehab  * Kamil Debski, Copyright (c) 2011 Samsung Electronics
9*43ecec16SMauro Carvalho Chehab  * http://www.samsung.com/
10*43ecec16SMauro Carvalho Chehab  */
11*43ecec16SMauro Carvalho Chehab 
12*43ecec16SMauro Carvalho Chehab #ifndef S5P_MFC_DEBUG_H_
13*43ecec16SMauro Carvalho Chehab #define S5P_MFC_DEBUG_H_
14*43ecec16SMauro Carvalho Chehab 
15*43ecec16SMauro Carvalho Chehab #define DEBUG
16*43ecec16SMauro Carvalho Chehab 
17*43ecec16SMauro Carvalho Chehab #ifdef DEBUG
18*43ecec16SMauro Carvalho Chehab extern int mfc_debug_level;
19*43ecec16SMauro Carvalho Chehab 
20*43ecec16SMauro Carvalho Chehab #define mfc_debug(level, fmt, args...)				\
21*43ecec16SMauro Carvalho Chehab 	do {							\
22*43ecec16SMauro Carvalho Chehab 		if (mfc_debug_level >= level)			\
23*43ecec16SMauro Carvalho Chehab 			printk(KERN_DEBUG "%s:%d: " fmt,	\
24*43ecec16SMauro Carvalho Chehab 				__func__, __LINE__, ##args);	\
25*43ecec16SMauro Carvalho Chehab 	} while (0)
26*43ecec16SMauro Carvalho Chehab #else
27*43ecec16SMauro Carvalho Chehab #define mfc_debug(level, fmt, args...)
28*43ecec16SMauro Carvalho Chehab #endif
29*43ecec16SMauro Carvalho Chehab 
30*43ecec16SMauro Carvalho Chehab #define mfc_debug_enter() mfc_debug(5, "enter\n")
31*43ecec16SMauro Carvalho Chehab #define mfc_debug_leave() mfc_debug(5, "leave\n")
32*43ecec16SMauro Carvalho Chehab 
33*43ecec16SMauro Carvalho Chehab #define mfc_err(fmt, args...)				\
34*43ecec16SMauro Carvalho Chehab 	do {						\
35*43ecec16SMauro Carvalho Chehab 		printk(KERN_ERR "%s:%d: " fmt,		\
36*43ecec16SMauro Carvalho Chehab 		       __func__, __LINE__, ##args);	\
37*43ecec16SMauro Carvalho Chehab 	} while (0)
38*43ecec16SMauro Carvalho Chehab 
39*43ecec16SMauro Carvalho Chehab #define mfc_err_limited(fmt, args...)			\
40*43ecec16SMauro Carvalho Chehab 	do {						\
41*43ecec16SMauro Carvalho Chehab 		printk_ratelimited(KERN_ERR "%s:%d: " fmt,	\
42*43ecec16SMauro Carvalho Chehab 		       __func__, __LINE__, ##args);	\
43*43ecec16SMauro Carvalho Chehab 	} while (0)
44*43ecec16SMauro Carvalho Chehab 
45*43ecec16SMauro Carvalho Chehab #define mfc_info(fmt, args...)				\
46*43ecec16SMauro Carvalho Chehab 	do {						\
47*43ecec16SMauro Carvalho Chehab 		printk(KERN_INFO "%s:%d: " fmt,		\
48*43ecec16SMauro Carvalho Chehab 		       __func__, __LINE__, ##args);	\
49*43ecec16SMauro Carvalho Chehab 	} while (0)
50*43ecec16SMauro Carvalho Chehab 
51*43ecec16SMauro Carvalho Chehab #endif /* S5P_MFC_DEBUG_H_ */
52