/* 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_CTC_TYPES_H #define __IA_CSS_CTC_TYPES_H #include <linux/bitops.h> /* @file * CSS-API header file for Chroma Tone Control parameters. */ /* Fractional bits for CTC gain (used only for ISP1). * * IA_CSS_CTC_COEF_SHIFT(=13) includes not only the fractional bits * of gain(=8), but also the bits(=5) to convert chroma * from 13bit precision to 8bit precision. * * Gain (struct ia_css_ctc_table) : u5.8 * Input(Chorma) : s0.12 (13bit precision) * Output(Chorma): s0.7 (8bit precision) * Output = (Input * Gain) >> IA_CSS_CTC_COEF_SHIFT */ #define IA_CSS_CTC_COEF_SHIFT … /* Number of elements in the CTC table. */ #define IA_CSS_VAMEM_1_CTC_TABLE_SIZE_LOG2 … /* Number of elements in the CTC table. */ #define IA_CSS_VAMEM_1_CTC_TABLE_SIZE … /* Number of elements in the CTC table. */ #define IA_CSS_VAMEM_2_CTC_TABLE_SIZE_LOG2 … /* Number of elements in the CTC table. */ #define IA_CSS_VAMEM_2_CTC_TABLE_SIZE … enum ia_css_vamem_type { … }; /* Chroma Tone Control configuration. * * ISP block: CTC2 (CTC by polygonal line approximation) * (ISP1: CTC1 (CTC by look-up table) is used.) * ISP2: CTC2 is used. */ struct ia_css_ctc_config { … }; ia_css_ctc_data; /* CTC table, used for Chroma Tone Control. * * ISP block: CTC1 (CTC by look-up table) * ISP1: CTC1 is used. * (ISP2: CTC2 (CTC by polygonal line approximation) is used.) */ struct ia_css_ctc_table { … }; #endif /* __IA_CSS_CTC_TYPES_H */