blob: 9238a3317a464cdddc4faa629e9aa9e6c72d079a [file] [log] [blame]
/*
* 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 */