1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * Support for Intel Camera Imaging ISP subsystem. 4 * Copyright (c) 2015, Intel Corporation. 5 * 6 * This program is free software; you can redistribute it and/or modify it 7 * under the terms and conditions of the GNU General Public License, 8 * version 2, as published by the Free Software Foundation. 9 * 10 * This program is distributed in the hope it will be useful, but WITHOUT 11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 13 * more details. 14 */ 15 16 #ifndef __IA_CSS_YNR2_TYPES_H 17 #define __IA_CSS_YNR2_TYPES_H 18 19 /* @file 20 * CSS-API header file for Y(Luma) Noise Reduction. 21 */ 22 23 /* Y(Luma) Noise Reduction configuration. 24 * 25 * ISP block: YNR2 & YEE2 26 * (ISP1: YNR1 and YEE1 are used.) 27 * (ISP2: YNR1 and YEE1 are used for Preview/Video.) 28 * ISP2: YNR2 and YEE2 are used for Still. 29 */ 30 struct ia_css_ynr_config { 31 u16 edge_sense_gain_0; /** Sensitivity of edge in dark area. 32 u13.0, [0,8191], 33 default 1000, ineffective 0 */ 34 u16 edge_sense_gain_1; /** Sensitivity of edge in bright area. 35 u13.0, [0,8191], 36 default 1000, ineffective 0 */ 37 u16 corner_sense_gain_0; /** Sensitivity of corner in dark area. 38 u13.0, [0,8191], 39 default 1000, ineffective 0 */ 40 u16 corner_sense_gain_1; /** Sensitivity of corner in bright area. 41 u13.0, [0,8191], 42 default 1000, ineffective 0 */ 43 }; 44 45 /* Fringe Control configuration. 46 * 47 * ISP block: FC2 (FC2 is used with YNR2/YEE2.) 48 * (ISP1: FC2 is not used.) 49 * (ISP2: FC2 is not for Preview/Video.) 50 * ISP2: FC2 is used for Still. 51 */ 52 struct ia_css_fc_config { 53 u8 gain_exp; /** Common exponent of gains. 54 u8.0, [0,13], 55 default 1, ineffective 0 */ 56 u16 coring_pos_0; /** Coring threshold for positive edge in dark area. 57 u0.13, [0,8191], 58 default 0(0), ineffective 0 */ 59 u16 coring_pos_1; /** Coring threshold for positive edge in bright area. 60 u0.13, [0,8191], 61 default 0(0), ineffective 0 */ 62 u16 coring_neg_0; /** Coring threshold for negative edge in dark area. 63 u0.13, [0,8191], 64 default 0(0), ineffective 0 */ 65 u16 coring_neg_1; /** Coring threshold for negative edge in bright area. 66 u0.13, [0,8191], 67 default 0(0), ineffective 0 */ 68 u16 gain_pos_0; /** Gain for positive edge in dark area. 69 u0.13, [0,8191], 70 default 4096(0.5), ineffective 0 */ 71 u16 gain_pos_1; /** Gain for positive edge in bright area. 72 u0.13, [0,8191], 73 default 4096(0.5), ineffective 0 */ 74 u16 gain_neg_0; /** Gain for negative edge in dark area. 75 u0.13, [0,8191], 76 default 4096(0.5), ineffective 0 */ 77 u16 gain_neg_1; /** Gain for negative edge in bright area. 78 u0.13, [0,8191], 79 default 4096(0.5), ineffective 0 */ 80 u16 crop_pos_0; /** Limit for positive edge in dark area. 81 u0.13, [0,8191], 82 default/ineffective 8191(almost 1.0) */ 83 u16 crop_pos_1; /** Limit for positive edge in bright area. 84 u0.13, [0,8191], 85 default/ineffective 8191(almost 1.0) */ 86 s16 crop_neg_0; /** Limit for negative edge in dark area. 87 s0.13, [-8192,0], 88 default/ineffective -8192(-1.0) */ 89 s16 crop_neg_1; /** Limit for negative edge in bright area. 90 s0.13, [-8192,0], 91 default/ineffective -8192(-1.0) */ 92 }; 93 94 #endif /* __IA_CSS_YNR2_TYPES_H */ 95