/* 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. */ #ifndef __IA_CSS_XNR_TYPES_H #define __IA_CSS_XNR_TYPES_H /* @file * CSS-API header file for Extra Noise Reduction (XNR) parameters. */ /* XNR table. * * NOTE: The driver does not need to set this table, * because the default values are set inside the css. * * This table contains coefficients used for division in XNR. * * u0.12, [0,4095], * {4095, 2048, 1365, .........., 65, 64} * ({1/1, 1/2, 1/3, ............., 1/63, 1/64}) * * ISP block: XNR1 * ISP1: XNR1 is used. * ISP2: XNR1 is used. * */ /* Number of elements in the xnr table. */ #define IA_CSS_VAMEM_1_XNR_TABLE_SIZE_LOG2 6 /* Number of elements in the xnr table. */ #define IA_CSS_VAMEM_1_XNR_TABLE_SIZE BIT(IA_CSS_VAMEM_1_XNR_TABLE_SIZE_LOG2) /* Number of elements in the xnr table. */ #define IA_CSS_VAMEM_2_XNR_TABLE_SIZE_LOG2 6 /* Number of elements in the xnr table. */ #define IA_CSS_VAMEM_2_XNR_TABLE_SIZE BIT(IA_CSS_VAMEM_2_XNR_TABLE_SIZE_LOG2) /** IA_CSS_VAMEM_TYPE_1(ISP2300) or IA_CSS_VAMEM_TYPE_2(ISP2400) */ union ia_css_xnr_data { u16 vamem_1[IA_CSS_VAMEM_1_XNR_TABLE_SIZE]; /** Coefficients table on vamem type1. u0.12, [0,4095] */ u16 vamem_2[IA_CSS_VAMEM_2_XNR_TABLE_SIZE]; /** Coefficients table on vamem type2. u0.12, [0,4095] */ }; struct ia_css_xnr_table { enum ia_css_vamem_type vamem_type; union ia_css_xnr_data data; }; struct ia_css_xnr_config { /* XNR threshold. * type:u0.16 valid range:[0,65535] * default: 6400 */ u16 threshold; }; #endif /* __IA_CSS_XNR_TYPES_H */