1f5fbb83fSMauro Carvalho Chehab /* SPDX-License-Identifier: GPL-2.0 */ 29d4fa1a1SMauro Carvalho Chehab /* 39d4fa1a1SMauro Carvalho Chehab * Support for Intel Camera Imaging ISP subsystem. 49d4fa1a1SMauro Carvalho Chehab * Copyright (c) 2015, Intel Corporation. 59d4fa1a1SMauro Carvalho Chehab * 69d4fa1a1SMauro Carvalho Chehab * This program is free software; you can redistribute it and/or modify it 79d4fa1a1SMauro Carvalho Chehab * under the terms and conditions of the GNU General Public License, 89d4fa1a1SMauro Carvalho Chehab * version 2, as published by the Free Software Foundation. 99d4fa1a1SMauro Carvalho Chehab * 109d4fa1a1SMauro Carvalho Chehab * This program is distributed in the hope it will be useful, but WITHOUT 119d4fa1a1SMauro Carvalho Chehab * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 129d4fa1a1SMauro Carvalho Chehab * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 139d4fa1a1SMauro Carvalho Chehab * more details. 149d4fa1a1SMauro Carvalho Chehab */ 159d4fa1a1SMauro Carvalho Chehab 169d4fa1a1SMauro Carvalho Chehab #ifndef __IA_CSS_GC_PARAM_H 179d4fa1a1SMauro Carvalho Chehab #define __IA_CSS_GC_PARAM_H 189d4fa1a1SMauro Carvalho Chehab 199d4fa1a1SMauro Carvalho Chehab #include "type_support.h" 209d4fa1a1SMauro Carvalho Chehab #ifndef PIPE_GENERATION 219d4fa1a1SMauro Carvalho Chehab #ifdef __ISP 229d4fa1a1SMauro Carvalho Chehab #define __INLINE_VAMEM__ 239d4fa1a1SMauro Carvalho Chehab #endif 249d4fa1a1SMauro Carvalho Chehab #include "vamem.h" 259d4fa1a1SMauro Carvalho Chehab #include "ia_css_gc_types.h" 269d4fa1a1SMauro Carvalho Chehab 279d4fa1a1SMauro Carvalho Chehab #if defined(IS_VAMEM_VERSION_1) 289d4fa1a1SMauro Carvalho Chehab #define SH_CSS_ISP_GAMMA_TABLE_SIZE_LOG2 IA_CSS_VAMEM_1_GAMMA_TABLE_SIZE_LOG2 299d4fa1a1SMauro Carvalho Chehab #define SH_CSS_ISP_GC_TABLE_SIZE IA_CSS_VAMEM_1_GAMMA_TABLE_SIZE 309d4fa1a1SMauro Carvalho Chehab #elif defined(IS_VAMEM_VERSION_2) 319d4fa1a1SMauro Carvalho Chehab #define SH_CSS_ISP_GAMMA_TABLE_SIZE_LOG2 IA_CSS_VAMEM_2_GAMMA_TABLE_SIZE_LOG2 329d4fa1a1SMauro Carvalho Chehab #define SH_CSS_ISP_GC_TABLE_SIZE IA_CSS_VAMEM_2_GAMMA_TABLE_SIZE 339d4fa1a1SMauro Carvalho Chehab #else 349d4fa1a1SMauro Carvalho Chehab #error "Undefined vamem version" 359d4fa1a1SMauro Carvalho Chehab #endif 369d4fa1a1SMauro Carvalho Chehab 379d4fa1a1SMauro Carvalho Chehab #else 389d4fa1a1SMauro Carvalho Chehab /* For pipe generation, the size is not relevant */ 399d4fa1a1SMauro Carvalho Chehab #define SH_CSS_ISP_GC_TABLE_SIZE 0 409d4fa1a1SMauro Carvalho Chehab #endif 419d4fa1a1SMauro Carvalho Chehab 429d4fa1a1SMauro Carvalho Chehab #define GAMMA_OUTPUT_BITS 8 439d4fa1a1SMauro Carvalho Chehab #define GAMMA_OUTPUT_MAX_VAL ((1 << GAMMA_OUTPUT_BITS) - 1) 449d4fa1a1SMauro Carvalho Chehab 459d4fa1a1SMauro Carvalho Chehab /* GC (Gamma Correction) */ 469d4fa1a1SMauro Carvalho Chehab struct sh_css_isp_gc_params { 479d4fa1a1SMauro Carvalho Chehab s32 gain_k1; 489d4fa1a1SMauro Carvalho Chehab s32 gain_k2; 499d4fa1a1SMauro Carvalho Chehab }; 509d4fa1a1SMauro Carvalho Chehab 519d4fa1a1SMauro Carvalho Chehab /* CE (Chroma Enhancement) */ 529d4fa1a1SMauro Carvalho Chehab struct sh_css_isp_ce_params { 539d4fa1a1SMauro Carvalho Chehab s32 uv_level_min; 549d4fa1a1SMauro Carvalho Chehab s32 uv_level_max; 559d4fa1a1SMauro Carvalho Chehab }; 569d4fa1a1SMauro Carvalho Chehab 579d4fa1a1SMauro Carvalho Chehab /* This should be vamem_data_t, but that breaks the pipe generator */ 589d4fa1a1SMauro Carvalho Chehab struct sh_css_isp_gc_vamem_params { 599d4fa1a1SMauro Carvalho Chehab u16 gc[SH_CSS_ISP_GC_TABLE_SIZE]; 609d4fa1a1SMauro Carvalho Chehab }; 619d4fa1a1SMauro Carvalho Chehab 629d4fa1a1SMauro Carvalho Chehab #endif /* __IA_CSS_GC_PARAM_H */ 63