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