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