// SPDX-License-Identifier: GPL-2.0 /* * Support for Intel Camera Imaging ISP subsystem. * Copyright (c) 2015, Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope 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. */ #include "type_support.h" #include "ia_css_bnlm.host.h" #ifndef IA_CSS_NO_DEBUG #include "ia_css_debug.h" /* ia_css_debug_dtrace() */ #endif #include <assert_support.h> #define BNLM_DIV_LUT_SIZE … static const s32 div_lut_nearests[BNLM_DIV_LUT_SIZE] = …; static const s32 div_lut_slopes[BNLM_DIV_LUT_SIZE] = …; static const s32 div_lut_intercepts[BNLM_DIV_LUT_SIZE] = …; /* Encodes a look-up table from BNLM public parameters to vmem parameters. * Input: * lut : bnlm_lut struct containing encoded vmem parameters look-up table * lut_thr : array containing threshold values for lut * lut_val : array containing output values related to lut_thr * lut_size: Size of lut_val array */ static inline void bnlm_lut_encode(struct bnlm_lut *lut, const int32_t *lut_thr, const s32 *lut_val, const uint32_t lut_size) { … } /* * - Encodes BNLM public parameters into VMEM parameters * - Generates VMEM parameters which will needed internally ISP */ void ia_css_bnlm_vmem_encode( struct bnlm_vmem_params *to, const struct ia_css_bnlm_config *from, size_t size) { … } /* - Encodes BNLM public parameters into DMEM parameters */ void ia_css_bnlm_encode( struct bnlm_dmem_params *to, const struct ia_css_bnlm_config *from, size_t size) { … } /* Prints debug traces for BNLM public parameters */ void ia_css_bnlm_debug_trace( const struct ia_css_bnlm_config *config, unsigned int level) { … }