/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */ | |
/* | |
* drivers/vpp/hdr2.h | |
* | |
* Copyright (C) 2020 Amlogic, Inc. All rights reserved. | |
* | |
*/ | |
#ifndef __HDR2_H__ | |
#define __HDR2_H__ | |
enum hdr_module_sel { | |
VD1_HDR = 0x1, | |
VD2_HDR = 0x2, | |
OSD1_HDR = 0x4, | |
VDIN0_HDR = 0x8, | |
VDIN1_HDR = 0x10, | |
DI_HDR = 0x20, | |
HDR_MAX | |
}; | |
enum hdr_matrix_sel { | |
HDR_IN_MTX = 0x1, | |
HDR_GAMUT_MTX = 0x2, | |
HDR_OUT_MTX = 0x4, | |
HDR_MTX_MAX | |
}; | |
enum hdr_lut_sel { | |
HDR_EOTF_LUT = 0x1, | |
HDR_OOTF_LUT = 0x2, | |
HDR_OETF_LUT = 0x4, | |
HDR_CGAIN_LUT = 0x8, | |
HDR_LUT_MAX | |
}; | |
enum hdr_process_sel { | |
HDR_BYPASS = 0x1, | |
HDR_SDR = 0x2, | |
SDR_HDR = 0x4, | |
HLG_BYPASS = 0x8, | |
HLG_SDR = 0x10, | |
HLG_HDR = 0x20, | |
SDR_HLG = 0X40, | |
HDRPLUS_SDR = 0x80, | |
HDR_OFF = 0x100, | |
RGB_BYPASS = 0x200, | |
RGB_OSD = 0x20000000, | |
HDR_p_MAX | |
}; | |
#define MTX_ON 1 | |
#define MTX_OFF 0 | |
#define MTX_ONLY 1 | |
#define HDR_ONLY 0 | |
#define LUT_ON 1 | |
#define LUT_OFF 0 | |
#define HDR2_EOTF_LUT_SIZE 143 | |
#define HDR2_OOTF_LUT_SIZE 149 | |
#define HDR2_OETF_LUT_SIZE 149 | |
#define HDR2_CGAIN_LUT_SIZE 65 | |
struct hdr_proc_mtx_param_s { | |
int mtx_only; | |
int mtx_in[15]; | |
int mtx_gamut[9]; | |
int mtx_gamut_mode; | |
int mtx_cgain[15]; | |
int mtx_ogain[15]; | |
int mtx_out[15]; | |
int mtxi_pre_offset[3]; | |
int mtxi_pos_offset[3]; | |
int mtxo_pre_offset[3]; | |
int mtxo_pos_offset[3]; | |
unsigned int mtx_on; | |
enum hdr_process_sel p_sel; | |
}; | |
struct hdr_proc_lut_param_s { | |
int eotf_lut[143]; | |
int oetf_lut[149]; | |
int ogain_lut[149]; | |
int cgain_lut[65]; | |
unsigned int lut_on; | |
unsigned int bitdepth; | |
unsigned int cgain_en; | |
}; | |
extern void hdr_func(enum hdr_module_sel module_sel, | |
enum hdr_process_sel hdr_process_select); | |
#endif |