/* * Support for Intel Camera Imaging ISP subsystem. * Copyright (c) 2015, Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. */ #ifndef __IA_CSS_TPG_H #define __IA_CSS_TPG_H /* @file * This file contains support for the test pattern generator (TPG) */ /* Enumerate the TPG IDs. */ enum ia_css_tpg_id { IA_CSS_TPG_ID0, IA_CSS_TPG_ID1, IA_CSS_TPG_ID2 }; /** * Maximum number of TPG IDs. * * Make sure the value of this define gets changed to reflect the correct * number of ia_css_tpg_id enum if you add/delete an item in the enum. */ #define N_CSS_TPG_IDS (IA_CSS_TPG_ID2+1) /* Enumerate the TPG modes. */ enum ia_css_tpg_mode { IA_CSS_TPG_MODE_RAMP, IA_CSS_TPG_MODE_CHECKERBOARD, IA_CSS_TPG_MODE_FRAME_BASED_COLOR, IA_CSS_TPG_MODE_MONO }; /* @brief Configure the test pattern generator. * * Configure the Test Pattern Generator, the way these values are used to * generate the pattern can be seen in the HRT extension for the test pattern * generator: * devices/test_pat_gen/hrt/include/test_pat_gen.h: hrt_calc_tpg_data(). * * This interface is deprecated, it is not portable -> move to input system API * @code unsigned int test_pattern_value(unsigned int x, unsigned int y) { unsigned int x_val, y_val; if (x_delta > 0) (x_val = (x << x_delta) & x_mask; else (x_val = (x >> -x_delta) & x_mask; if (y_delta > 0) (y_val = (y << y_delta) & y_mask; else (y_val = (y >> -y_delta) & x_mask; return (x_val + y_val) & xy_mask; } @endcode */ struct ia_css_tpg_config { enum ia_css_tpg_id id; enum ia_css_tpg_mode mode; unsigned int x_mask; int x_delta; unsigned int y_mask; int y_delta; unsigned int xy_mask; }; #endif /* __IA_CSS_TPG_H */