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