linux/drivers/staging/media/atomisp/pci/isp/kernels/ob/ob2/ia_css_ob2.host.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0
   2/*
   3 * Support for Intel Camera Imaging ISP subsystem.
   4 * Copyright (c) 2015, Intel Corporation.
   5 *
   6 * This program is free software; you can redistribute it and/or modify it
   7 * under the terms and conditions of the GNU General Public License,
   8 * version 2, as published by the Free Software Foundation.
   9 *
  10 * This program is distributed in the hope it will be useful, but WITHOUT
  11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  12 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
  13 * more details.
  14 */
  15
  16#include "ia_css_types.h"
  17#include "sh_css_defs.h"
  18#include "sh_css_frac.h"
  19#ifndef IA_CSS_NO_DEBUG
  20#include "ia_css_debug.h"
  21#endif
  22#include "isp.h"
  23#include "ia_css_ob2.host.h"
  24
  25const struct ia_css_ob2_config default_ob2_config = {
  26        0,
  27        0,
  28        0,
  29        0
  30};
  31
  32void
  33ia_css_ob2_encode(
  34    struct sh_css_isp_ob2_params *to,
  35    const struct ia_css_ob2_config *from,
  36    unsigned int size)
  37{
  38        (void)size;
  39
  40        /* Blacklevels types are u0_16 */
  41        to->blacklevel_gr = uDIGIT_FITTING(from->level_gr, 16, SH_CSS_BAYER_BITS);
  42        to->blacklevel_r  = uDIGIT_FITTING(from->level_r,  16, SH_CSS_BAYER_BITS);
  43        to->blacklevel_b  = uDIGIT_FITTING(from->level_b,  16, SH_CSS_BAYER_BITS);
  44        to->blacklevel_gb = uDIGIT_FITTING(from->level_gb, 16, SH_CSS_BAYER_BITS);
  45}
  46
  47#ifndef IA_CSS_NO_DEBUG
  48void
  49ia_css_ob2_dump(
  50    const struct sh_css_isp_ob2_params *ob2,
  51    unsigned int level)
  52{
  53        if (!ob2)
  54                return;
  55
  56        ia_css_debug_dtrace(level, "Optical Black 2:\n");
  57        ia_css_debug_dtrace(level, "\t%-32s = %d\n",
  58                            "ob2_blacklevel_gr", ob2->blacklevel_gr);
  59        ia_css_debug_dtrace(level, "\t%-32s = %d\n",
  60                            "ob2_blacklevel_r", ob2->blacklevel_r);
  61        ia_css_debug_dtrace(level, "\t%-32s = %d\n",
  62                            "ob2_blacklevel_b", ob2->blacklevel_b);
  63        ia_css_debug_dtrace(level, "\t%-32s = %d\n",
  64                            "ob2_blacklevel_gb", ob2->blacklevel_gb);
  65}
  66
  67void
  68ia_css_ob2_debug_dtrace(
  69    const struct ia_css_ob2_config *config,
  70    unsigned int level)
  71{
  72        ia_css_debug_dtrace(level,
  73                            "config.level_gr=%d, config.level_r=%d, config.level_b=%d,  config.level_gb=%d, ",
  74                            config->level_gr, config->level_r,
  75                            config->level_b, config->level_gb);
  76}
  77#endif
  78