1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * Support for Intel Camera Imaging ISP subsystem. 4 * Copyright (c) 2015, Intel Corporation. 5 */ 6 7 #ifndef __IA_CSS_XNR_TYPES_H 8 #define __IA_CSS_XNR_TYPES_H 9 10 /* @file 11 * CSS-API header file for Extra Noise Reduction (XNR) parameters. 12 */ 13 14 /* XNR table. 15 * 16 * NOTE: The driver does not need to set this table, 17 * because the default values are set inside the css. 18 * 19 * This table contains coefficients used for division in XNR. 20 * 21 * u0.12, [0,4095], 22 * {4095, 2048, 1365, .........., 65, 64} 23 * ({1/1, 1/2, 1/3, ............., 1/63, 1/64}) 24 * 25 * ISP block: XNR1 26 * ISP1: XNR1 is used. 27 * ISP2: XNR1 is used. 28 * 29 */ 30 31 /* Number of elements in the xnr table. */ 32 #define IA_CSS_VAMEM_1_XNR_TABLE_SIZE_LOG2 6 33 /* Number of elements in the xnr table. */ 34 #define IA_CSS_VAMEM_1_XNR_TABLE_SIZE BIT(IA_CSS_VAMEM_1_XNR_TABLE_SIZE_LOG2) 35 36 /* Number of elements in the xnr table. */ 37 #define IA_CSS_VAMEM_2_XNR_TABLE_SIZE_LOG2 6 38 /* Number of elements in the xnr table. */ 39 #define IA_CSS_VAMEM_2_XNR_TABLE_SIZE BIT(IA_CSS_VAMEM_2_XNR_TABLE_SIZE_LOG2) 40 41 /** IA_CSS_VAMEM_TYPE_1(ISP2300) or 42 IA_CSS_VAMEM_TYPE_2(ISP2400) */ 43 union ia_css_xnr_data { 44 u16 vamem_1[IA_CSS_VAMEM_1_XNR_TABLE_SIZE]; 45 /** Coefficients table on vamem type1. u0.12, [0,4095] */ 46 u16 vamem_2[IA_CSS_VAMEM_2_XNR_TABLE_SIZE]; 47 /** Coefficients table on vamem type2. u0.12, [0,4095] */ 48 }; 49 50 struct ia_css_xnr_table { 51 enum ia_css_vamem_type vamem_type; 52 union ia_css_xnr_data data; 53 }; 54 55 struct ia_css_xnr_config { 56 /* XNR threshold. 57 * type:u0.16 valid range:[0,65535] 58 * default: 6400 */ 59 u16 threshold; 60 }; 61 62 #endif /* __IA_CSS_XNR_TYPES_H */ 63