/* SPDX-License-Identifier: GPL-2.0 */ /* * Support for Medifield PNW Camera Imaging ISP subsystem. * * Copyright (c) 2010 Intel Corporation. All Rights Reserved. * * Copyright (c) 2010 Silicon Hive www.siliconhive.com. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version * 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * */ #ifndef __HMM_BO_COMMON_H__ #define __HMM_BO_COMMON_H__ #define HMM_BO_NAME "HMM" /* * some common use micros */ #define var_equal_return(var1, var2, exp, fmt, arg ...) \ do { \ if ((var1) == (var2)) { \ dev_err(atomisp_dev, \ fmt, ## arg); \ return exp;\ } \ } while (0) #define var_equal_return_void(var1, var2, fmt, arg ...) \ do { \ if ((var1) == (var2)) { \ dev_err(atomisp_dev, \ fmt, ## arg); \ return;\ } \ } while (0) #define var_equal_goto(var1, var2, label, fmt, arg ...) \ do { \ if ((var1) == (var2)) { \ dev_err(atomisp_dev, \ fmt, ## arg); \ goto label;\ } \ } while (0) #define var_not_equal_goto(var1, var2, label, fmt, arg ...) \ do { \ if ((var1) != (var2)) { \ dev_err(atomisp_dev, \ fmt, ## arg); \ goto label;\ } \ } while (0) #define check_null_return(ptr, exp, fmt, arg ...) \ var_equal_return(ptr, NULL, exp, fmt, ## arg) #define check_null_return_void(ptr, fmt, arg ...) \ var_equal_return_void(ptr, NULL, fmt, ## arg) /* hmm_mem_stat is used to trace the hmm mem used by ISP pipe. The unit is page * number. * * res_size: reserved mem pool size, being allocated from system at system boot time. * res_size >= res_cnt. * sys_size: system mem pool size, being allocated from system at camera running time. * dyc_size: dynamic mem pool size. * dyc_thr: dynamic mem pool high watermark. * dyc_size <= dyc_thr. * usr_size: user ptr mem size. * * res_cnt: track the mem allocated from reserved pool at camera running time. * tol_cnt: track the total mem used by ISP pipe at camera running time. */ struct _hmm_mem_stat { int res_size; int sys_size; int dyc_size; int dyc_thr; int usr_size; int res_cnt; int tol_cnt; }; extern struct _hmm_mem_stat hmm_mem_stat; #endif