19d4fa1a1SMauro Carvalho Chehab /* 29d4fa1a1SMauro Carvalho Chehab * Support for Intel Camera Imaging ISP subsystem. 39d4fa1a1SMauro Carvalho Chehab * Copyright (c) 2015, Intel Corporation. 49d4fa1a1SMauro Carvalho Chehab * 59d4fa1a1SMauro Carvalho Chehab * This program is free software; you can redistribute it and/or modify it 69d4fa1a1SMauro Carvalho Chehab * under the terms and conditions of the GNU General Public License, 79d4fa1a1SMauro Carvalho Chehab * version 2, as published by the Free Software Foundation. 89d4fa1a1SMauro Carvalho Chehab * 99d4fa1a1SMauro Carvalho Chehab * This program is distributed in the hope it will be useful, but WITHOUT 109d4fa1a1SMauro Carvalho Chehab * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 119d4fa1a1SMauro Carvalho Chehab * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 129d4fa1a1SMauro Carvalho Chehab * more details. 139d4fa1a1SMauro Carvalho Chehab */ 149d4fa1a1SMauro Carvalho Chehab 159d4fa1a1SMauro Carvalho Chehab #include "ia_css_types.h" 169d4fa1a1SMauro Carvalho Chehab #include "sh_css_defs.h" 179d4fa1a1SMauro Carvalho Chehab #include "ia_css_debug.h" 189d4fa1a1SMauro Carvalho Chehab #include "sh_css_frac.h" 199d4fa1a1SMauro Carvalho Chehab #include "ia_css_de.host.h" 209d4fa1a1SMauro Carvalho Chehab 219d4fa1a1SMauro Carvalho Chehab const struct ia_css_de_config default_de_config = { 229d4fa1a1SMauro Carvalho Chehab 0, 239d4fa1a1SMauro Carvalho Chehab 0, 249d4fa1a1SMauro Carvalho Chehab 0 259d4fa1a1SMauro Carvalho Chehab }; 269d4fa1a1SMauro Carvalho Chehab 279d4fa1a1SMauro Carvalho Chehab void 289d4fa1a1SMauro Carvalho Chehab ia_css_de_encode( 299d4fa1a1SMauro Carvalho Chehab struct sh_css_isp_de_params *to, 309d4fa1a1SMauro Carvalho Chehab const struct ia_css_de_config *from, 319d4fa1a1SMauro Carvalho Chehab unsigned int size) 329d4fa1a1SMauro Carvalho Chehab { 339d4fa1a1SMauro Carvalho Chehab (void)size; 349d4fa1a1SMauro Carvalho Chehab to->pixelnoise = 359d4fa1a1SMauro Carvalho Chehab uDIGIT_FITTING(from->pixelnoise, 16, SH_CSS_BAYER_BITS); 369d4fa1a1SMauro Carvalho Chehab to->c1_coring_threshold = 379d4fa1a1SMauro Carvalho Chehab uDIGIT_FITTING(from->c1_coring_threshold, 16, 389d4fa1a1SMauro Carvalho Chehab SH_CSS_BAYER_BITS); 399d4fa1a1SMauro Carvalho Chehab to->c2_coring_threshold = 409d4fa1a1SMauro Carvalho Chehab uDIGIT_FITTING(from->c2_coring_threshold, 16, 419d4fa1a1SMauro Carvalho Chehab SH_CSS_BAYER_BITS); 429d4fa1a1SMauro Carvalho Chehab } 439d4fa1a1SMauro Carvalho Chehab 449d4fa1a1SMauro Carvalho Chehab void 459d4fa1a1SMauro Carvalho Chehab ia_css_de_dump( 469d4fa1a1SMauro Carvalho Chehab const struct sh_css_isp_de_params *de, 479d4fa1a1SMauro Carvalho Chehab unsigned int level) 489d4fa1a1SMauro Carvalho Chehab { 499d4fa1a1SMauro Carvalho Chehab if (!de) return; 509d4fa1a1SMauro Carvalho Chehab ia_css_debug_dtrace(level, "Demosaic:\n"); 519d4fa1a1SMauro Carvalho Chehab ia_css_debug_dtrace(level, "\t%-32s = %d\n", 529d4fa1a1SMauro Carvalho Chehab "de_pixelnoise", de->pixelnoise); 539d4fa1a1SMauro Carvalho Chehab ia_css_debug_dtrace(level, "\t%-32s = %d\n", 549d4fa1a1SMauro Carvalho Chehab "de_c1_coring_threshold", 559d4fa1a1SMauro Carvalho Chehab de->c1_coring_threshold); 569d4fa1a1SMauro Carvalho Chehab ia_css_debug_dtrace(level, "\t%-32s = %d\n", 579d4fa1a1SMauro Carvalho Chehab "de_c2_coring_threshold", 589d4fa1a1SMauro Carvalho Chehab de->c2_coring_threshold); 599d4fa1a1SMauro Carvalho Chehab } 609d4fa1a1SMauro Carvalho Chehab 619d4fa1a1SMauro Carvalho Chehab void 629d4fa1a1SMauro Carvalho Chehab ia_css_de_debug_dtrace( 639d4fa1a1SMauro Carvalho Chehab const struct ia_css_de_config *config, 649d4fa1a1SMauro Carvalho Chehab unsigned int level) 659d4fa1a1SMauro Carvalho Chehab { 669d4fa1a1SMauro Carvalho Chehab ia_css_debug_dtrace(level, 679d4fa1a1SMauro Carvalho Chehab "config.pixelnoise=%d, config.c1_coring_threshold=%d, config.c2_coring_threshold=%d\n", 689d4fa1a1SMauro Carvalho Chehab config->pixelnoise, 699d4fa1a1SMauro Carvalho Chehab config->c1_coring_threshold, config->c2_coring_threshold); 709d4fa1a1SMauro Carvalho Chehab } 719d4fa1a1SMauro Carvalho Chehab 729d4fa1a1SMauro Carvalho Chehab void 739d4fa1a1SMauro Carvalho Chehab ia_css_init_de_state( 749d4fa1a1SMauro Carvalho Chehab void/*struct sh_css_isp_de_vmem_state*/ * state, 759d4fa1a1SMauro Carvalho Chehab size_t size) 769d4fa1a1SMauro Carvalho Chehab { 779d4fa1a1SMauro Carvalho Chehab memset(state, 0, size); 789d4fa1a1SMauro Carvalho Chehab } 79