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_MACC_TYPES_H 179d4fa1a1SMauro Carvalho Chehab #define __IA_CSS_MACC_TYPES_H 189d4fa1a1SMauro Carvalho Chehab 199d4fa1a1SMauro Carvalho Chehab /* @file 209d4fa1a1SMauro Carvalho Chehab * CSS-API header file for Multi-Axis Color Correction (MACC) parameters. 219d4fa1a1SMauro Carvalho Chehab */ 229d4fa1a1SMauro Carvalho Chehab 239d4fa1a1SMauro Carvalho Chehab /* Number of axes in the MACC table. */ 249d4fa1a1SMauro Carvalho Chehab #define IA_CSS_MACC_NUM_AXES 16 259d4fa1a1SMauro Carvalho Chehab /* Number of coefficients per MACC axes. */ 269d4fa1a1SMauro Carvalho Chehab #define IA_CSS_MACC_NUM_COEFS 4 279d4fa1a1SMauro Carvalho Chehab /* The number of planes in the morphing table. */ 289d4fa1a1SMauro Carvalho Chehab 299d4fa1a1SMauro Carvalho Chehab /* Multi-Axis Color Correction (MACC) table. 309d4fa1a1SMauro Carvalho Chehab * 319d4fa1a1SMauro Carvalho Chehab * ISP block: MACC1 (MACC by only matrix) 329d4fa1a1SMauro Carvalho Chehab * MACC2 (MACC by matrix and exponent(ia_css_macc_config)) 339d4fa1a1SMauro Carvalho Chehab * ISP1: MACC1 is used. 349d4fa1a1SMauro Carvalho Chehab * ISP2: MACC2 is used. 359d4fa1a1SMauro Carvalho Chehab * 369d4fa1a1SMauro Carvalho Chehab * [MACC1] 379d4fa1a1SMauro Carvalho Chehab * OutU = (data00 * InU + data01 * InV) >> 13 389d4fa1a1SMauro Carvalho Chehab * OutV = (data10 * InU + data11 * InV) >> 13 399d4fa1a1SMauro Carvalho Chehab * 409d4fa1a1SMauro Carvalho Chehab * default/ineffective: 419d4fa1a1SMauro Carvalho Chehab * OutU = (8192 * InU + 0 * InV) >> 13 429d4fa1a1SMauro Carvalho Chehab * OutV = ( 0 * InU + 8192 * InV) >> 13 439d4fa1a1SMauro Carvalho Chehab * 449d4fa1a1SMauro Carvalho Chehab * [MACC2] 459d4fa1a1SMauro Carvalho Chehab * OutU = (data00 * InU + data01 * InV) >> (13 - exp) 469d4fa1a1SMauro Carvalho Chehab * OutV = (data10 * InU + data11 * InV) >> (13 - exp) 479d4fa1a1SMauro Carvalho Chehab * 489d4fa1a1SMauro Carvalho Chehab * default/ineffective: (exp=1) 499d4fa1a1SMauro Carvalho Chehab * OutU = (4096 * InU + 0 * InV) >> (13 - 1) 509d4fa1a1SMauro Carvalho Chehab * OutV = ( 0 * InU + 4096 * InV) >> (13 - 1) 519d4fa1a1SMauro Carvalho Chehab */ 529d4fa1a1SMauro Carvalho Chehab 539d4fa1a1SMauro Carvalho Chehab struct ia_css_macc_table { 549d4fa1a1SMauro Carvalho Chehab s16 data[IA_CSS_MACC_NUM_COEFS * IA_CSS_MACC_NUM_AXES]; 559d4fa1a1SMauro Carvalho Chehab /** 16 of 2x2 matix 569d4fa1a1SMauro Carvalho Chehab MACC1: s2.13, [-65536,65535] 579d4fa1a1SMauro Carvalho Chehab default/ineffective: 589d4fa1a1SMauro Carvalho Chehab 16 of "identity 2x2 matix" {8192,0,0,8192} 599d4fa1a1SMauro Carvalho Chehab MACC2: s[macc_config.exp].[13-macc_config.exp], [-8192,8191] 609d4fa1a1SMauro Carvalho Chehab default/ineffective: (s1.12) 619d4fa1a1SMauro Carvalho Chehab 16 of "identity 2x2 matix" {4096,0,0,4096} */ 629d4fa1a1SMauro Carvalho Chehab }; 639d4fa1a1SMauro Carvalho Chehab 649d4fa1a1SMauro Carvalho Chehab #endif /* __IA_CSS_MACC_TYPES_H */ 65