| /* SPDX-License-Identifier: GPL-2.0 */ |
| /* |
| * 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 */ |