1f5fbb83fSMauro Carvalho Chehab /* SPDX-License-Identifier: GPL-2.0 */
29d4fa1a1SMauro Carvalho Chehab /*
39d4fa1a1SMauro Carvalho Chehab  * Support for Medifield PNW Camera Imaging ISP subsystem.
49d4fa1a1SMauro Carvalho Chehab  *
59d4fa1a1SMauro Carvalho Chehab  * Copyright (c) 2010 Intel Corporation. All Rights Reserved.
69d4fa1a1SMauro Carvalho Chehab  *
79d4fa1a1SMauro Carvalho Chehab  * Copyright (c) 2010 Silicon Hive www.siliconhive.com.
89d4fa1a1SMauro Carvalho Chehab  *
99d4fa1a1SMauro Carvalho Chehab  * This program is free software; you can redistribute it and/or
109d4fa1a1SMauro Carvalho Chehab  * modify it under the terms of the GNU General Public License version
119d4fa1a1SMauro Carvalho Chehab  * 2 as published by the Free Software Foundation.
129d4fa1a1SMauro Carvalho Chehab  *
139d4fa1a1SMauro Carvalho Chehab  * This program is distributed in the hope that it will be useful,
149d4fa1a1SMauro Carvalho Chehab  * but WITHOUT ANY WARRANTY; without even the implied warranty of
159d4fa1a1SMauro Carvalho Chehab  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
169d4fa1a1SMauro Carvalho Chehab  * GNU General Public License for more details.
179d4fa1a1SMauro Carvalho Chehab  *
189d4fa1a1SMauro Carvalho Chehab  *
199d4fa1a1SMauro Carvalho Chehab  */
209d4fa1a1SMauro Carvalho Chehab 
219d4fa1a1SMauro Carvalho Chehab #ifndef	__HMM_BO_COMMON_H__
229d4fa1a1SMauro Carvalho Chehab #define	__HMM_BO_COMMON_H__
239d4fa1a1SMauro Carvalho Chehab 
249d4fa1a1SMauro Carvalho Chehab #define	HMM_BO_NAME	"HMM"
259d4fa1a1SMauro Carvalho Chehab 
269d4fa1a1SMauro Carvalho Chehab /*
279d4fa1a1SMauro Carvalho Chehab  * some common use micros
289d4fa1a1SMauro Carvalho Chehab  */
299d4fa1a1SMauro Carvalho Chehab #define	var_equal_return(var1, var2, exp, fmt, arg ...)	\
309d4fa1a1SMauro Carvalho Chehab 	do { \
319d4fa1a1SMauro Carvalho Chehab 		if ((var1) == (var2)) { \
329d4fa1a1SMauro Carvalho Chehab 			dev_err(atomisp_dev, \
339d4fa1a1SMauro Carvalho Chehab 			fmt, ## arg); \
349d4fa1a1SMauro Carvalho Chehab 			return exp;\
359d4fa1a1SMauro Carvalho Chehab 		} \
369d4fa1a1SMauro Carvalho Chehab 	} while (0)
379d4fa1a1SMauro Carvalho Chehab 
389d4fa1a1SMauro Carvalho Chehab #define	var_equal_return_void(var1, var2, fmt, arg ...)	\
399d4fa1a1SMauro Carvalho Chehab 	do { \
409d4fa1a1SMauro Carvalho Chehab 		if ((var1) == (var2)) { \
419d4fa1a1SMauro Carvalho Chehab 			dev_err(atomisp_dev, \
429d4fa1a1SMauro Carvalho Chehab 			fmt, ## arg); \
439d4fa1a1SMauro Carvalho Chehab 			return;\
449d4fa1a1SMauro Carvalho Chehab 		} \
459d4fa1a1SMauro Carvalho Chehab 	} while (0)
469d4fa1a1SMauro Carvalho Chehab 
479d4fa1a1SMauro Carvalho Chehab #define	var_equal_goto(var1, var2, label, fmt, arg ...)	\
489d4fa1a1SMauro Carvalho Chehab 	do { \
499d4fa1a1SMauro Carvalho Chehab 		if ((var1) == (var2)) { \
509d4fa1a1SMauro Carvalho Chehab 			dev_err(atomisp_dev, \
519d4fa1a1SMauro Carvalho Chehab 			fmt, ## arg); \
529d4fa1a1SMauro Carvalho Chehab 			goto label;\
539d4fa1a1SMauro Carvalho Chehab 		} \
549d4fa1a1SMauro Carvalho Chehab 	} while (0)
559d4fa1a1SMauro Carvalho Chehab 
569d4fa1a1SMauro Carvalho Chehab #define	var_not_equal_goto(var1, var2, label, fmt, arg ...)	\
579d4fa1a1SMauro Carvalho Chehab 	do { \
589d4fa1a1SMauro Carvalho Chehab 		if ((var1) != (var2)) { \
599d4fa1a1SMauro Carvalho Chehab 			dev_err(atomisp_dev, \
609d4fa1a1SMauro Carvalho Chehab 			fmt, ## arg); \
619d4fa1a1SMauro Carvalho Chehab 			goto label;\
629d4fa1a1SMauro Carvalho Chehab 		} \
639d4fa1a1SMauro Carvalho Chehab 	} while (0)
649d4fa1a1SMauro Carvalho Chehab 
659d4fa1a1SMauro Carvalho Chehab #define	check_null_return(ptr, exp, fmt, arg ...)	\
669d4fa1a1SMauro Carvalho Chehab 		var_equal_return(ptr, NULL, exp, fmt, ## arg)
679d4fa1a1SMauro Carvalho Chehab 
689d4fa1a1SMauro Carvalho Chehab #define	check_null_return_void(ptr, fmt, arg ...)	\
699d4fa1a1SMauro Carvalho Chehab 		var_equal_return_void(ptr, NULL, fmt, ## arg)
709d4fa1a1SMauro Carvalho Chehab 
719d4fa1a1SMauro Carvalho Chehab #endif
72