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 189d4fa1a1SMauro Carvalho Chehab #ifndef IA_CSS_NO_DEBUG 199d4fa1a1SMauro Carvalho Chehab /* FIXME: See BZ 4427 */ 209d4fa1a1SMauro Carvalho Chehab #include "ia_css_debug.h" 219d4fa1a1SMauro Carvalho Chehab #endif 229d4fa1a1SMauro Carvalho Chehab 239d4fa1a1SMauro Carvalho Chehab #include "ia_css_macc1_5.host.h" 249d4fa1a1SMauro Carvalho Chehab 259d4fa1a1SMauro Carvalho Chehab const struct ia_css_macc1_5_config default_macc1_5_config = { 269d4fa1a1SMauro Carvalho Chehab 1 279d4fa1a1SMauro Carvalho Chehab }; 289d4fa1a1SMauro Carvalho Chehab 299d4fa1a1SMauro Carvalho Chehab void 309d4fa1a1SMauro Carvalho Chehab ia_css_macc1_5_encode( 319d4fa1a1SMauro Carvalho Chehab struct sh_css_isp_macc1_5_params *to, 329d4fa1a1SMauro Carvalho Chehab const struct ia_css_macc1_5_config *from, 339d4fa1a1SMauro Carvalho Chehab unsigned int size) 349d4fa1a1SMauro Carvalho Chehab { 359d4fa1a1SMauro Carvalho Chehab (void)size; 369d4fa1a1SMauro Carvalho Chehab to->exp = from->exp; 379d4fa1a1SMauro Carvalho Chehab } 389d4fa1a1SMauro Carvalho Chehab 399d4fa1a1SMauro Carvalho Chehab void 409d4fa1a1SMauro Carvalho Chehab ia_css_macc1_5_vmem_encode( 419d4fa1a1SMauro Carvalho Chehab struct sh_css_isp_macc1_5_vmem_params *params, 429d4fa1a1SMauro Carvalho Chehab const struct ia_css_macc1_5_table *from, 439d4fa1a1SMauro Carvalho Chehab unsigned int size) 449d4fa1a1SMauro Carvalho Chehab { 459d4fa1a1SMauro Carvalho Chehab unsigned int i, j, k, idx; 469d4fa1a1SMauro Carvalho Chehab unsigned int idx_map[] = { 479d4fa1a1SMauro Carvalho Chehab 0, 1, 3, 2, 6, 7, 5, 4, 12, 13, 15, 14, 10, 11, 9, 8 489d4fa1a1SMauro Carvalho Chehab }; 499d4fa1a1SMauro Carvalho Chehab 509d4fa1a1SMauro Carvalho Chehab (void)size; 519d4fa1a1SMauro Carvalho Chehab 529d4fa1a1SMauro Carvalho Chehab for (k = 0; k < 4; k++) 539d4fa1a1SMauro Carvalho Chehab for (i = 0; i < IA_CSS_MACC_NUM_AXES; i++) { 549d4fa1a1SMauro Carvalho Chehab idx = idx_map[i] + (k * IA_CSS_MACC_NUM_AXES); 559d4fa1a1SMauro Carvalho Chehab j = 4 * i; 569d4fa1a1SMauro Carvalho Chehab 579d4fa1a1SMauro Carvalho Chehab params->data[0][(idx)] = from->data[j]; 589d4fa1a1SMauro Carvalho Chehab params->data[1][(idx)] = from->data[j + 1]; 599d4fa1a1SMauro Carvalho Chehab params->data[2][(idx)] = from->data[j + 2]; 609d4fa1a1SMauro Carvalho Chehab params->data[3][(idx)] = from->data[j + 3]; 619d4fa1a1SMauro Carvalho Chehab } 629d4fa1a1SMauro Carvalho Chehab } 639d4fa1a1SMauro Carvalho Chehab 649d4fa1a1SMauro Carvalho Chehab #ifndef IA_CSS_NO_DEBUG 659d4fa1a1SMauro Carvalho Chehab void 669d4fa1a1SMauro Carvalho Chehab ia_css_macc1_5_debug_dtrace( 679d4fa1a1SMauro Carvalho Chehab const struct ia_css_macc1_5_config *config, 689d4fa1a1SMauro Carvalho Chehab unsigned int level) 699d4fa1a1SMauro Carvalho Chehab { 709d4fa1a1SMauro Carvalho Chehab ia_css_debug_dtrace(level, 719d4fa1a1SMauro Carvalho Chehab "config.exp=%d\n", 729d4fa1a1SMauro Carvalho Chehab config->exp); 739d4fa1a1SMauro Carvalho Chehab } 749d4fa1a1SMauro Carvalho Chehab #endif 75