0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026 #ifndef __DC_OPTC_DCN201_H__
0027 #define __DC_OPTC_DCN201_H__
0028
0029 #include "dcn20/dcn20_optc.h"
0030
0031 #define TG_COMMON_REG_LIST_DCN201(inst) \
0032 TG_COMMON_REG_LIST_DCN(inst),\
0033 SRI(OTG_GLOBAL_CONTROL1, OTG, inst),\
0034 SRI(OTG_GLOBAL_CONTROL2, OTG, inst),\
0035 SRI(OTG_GSL_WINDOW_X, OTG, inst),\
0036 SRI(OTG_GSL_WINDOW_Y, OTG, inst),\
0037 SRI(OTG_VUPDATE_KEEPOUT, OTG, inst),\
0038 SRI(OTG_DSC_START_POSITION, OTG, inst),\
0039 SRI(OPTC_DATA_FORMAT_CONTROL, ODM, inst),\
0040 SRI(OPTC_BYTES_PER_PIXEL, ODM, inst),\
0041 SRI(OPTC_WIDTH_CONTROL, ODM, inst),\
0042 SR(DWB_SOURCE_SELECT)
0043
0044 #define TG_COMMON_MASK_SH_LIST_DCN201(mask_sh)\
0045 TG_COMMON_MASK_SH_LIST_DCN(mask_sh),\
0046 SF(OTG0_OTG_GLOBAL_CONTROL1, MASTER_UPDATE_LOCK_DB_X, mask_sh),\
0047 SF(OTG0_OTG_GLOBAL_CONTROL1, MASTER_UPDATE_LOCK_DB_Y, mask_sh),\
0048 SF(OTG0_OTG_GLOBAL_CONTROL1, MASTER_UPDATE_LOCK_DB_EN, mask_sh),\
0049 SF(OTG0_OTG_GLOBAL_CONTROL2, GLOBAL_UPDATE_LOCK_EN, mask_sh),\
0050 SF(OTG0_OTG_DOUBLE_BUFFER_CONTROL, OTG_RANGE_TIMING_DBUF_UPDATE_MODE, mask_sh),\
0051 SF(OTG0_OTG_GSL_WINDOW_X, OTG_GSL_WINDOW_START_X, mask_sh),\
0052 SF(OTG0_OTG_GSL_WINDOW_X, OTG_GSL_WINDOW_END_X, mask_sh), \
0053 SF(OTG0_OTG_GSL_WINDOW_Y, OTG_GSL_WINDOW_START_Y, mask_sh),\
0054 SF(OTG0_OTG_GSL_WINDOW_Y, OTG_GSL_WINDOW_END_Y, mask_sh),\
0055 SF(OTG0_OTG_VUPDATE_KEEPOUT, OTG_MASTER_UPDATE_LOCK_VUPDATE_KEEPOUT_EN, mask_sh), \
0056 SF(OTG0_OTG_VUPDATE_KEEPOUT, MASTER_UPDATE_LOCK_VUPDATE_KEEPOUT_START_OFFSET, mask_sh), \
0057 SF(OTG0_OTG_VUPDATE_KEEPOUT, MASTER_UPDATE_LOCK_VUPDATE_KEEPOUT_END_OFFSET, mask_sh), \
0058 SF(OTG0_OTG_GSL_CONTROL, OTG_GSL_MASTER_MODE, mask_sh), \
0059 SF(OTG0_OTG_GSL_CONTROL, OTG_MASTER_UPDATE_LOCK_GSL_EN, mask_sh), \
0060 SF(OTG0_OTG_DSC_START_POSITION, OTG_DSC_START_POSITION_X, mask_sh), \
0061 SF(OTG0_OTG_DSC_START_POSITION, OTG_DSC_START_POSITION_LINE_NUM, mask_sh),\
0062 SF(ODM0_OPTC_DATA_SOURCE_SELECT, OPTC_SEG0_SRC_SEL, mask_sh),\
0063 SF(ODM0_OPTC_DATA_FORMAT_CONTROL, OPTC_DSC_MODE, mask_sh),\
0064 SF(ODM0_OPTC_BYTES_PER_PIXEL, OPTC_DSC_BYTES_PER_PIXEL, mask_sh),\
0065 SF(ODM0_OPTC_WIDTH_CONTROL, OPTC_DSC_SLICE_WIDTH, mask_sh),\
0066 SF(DWB_SOURCE_SELECT, OPTC_DWB0_SOURCE_SELECT, mask_sh),\
0067 SF(DWB_SOURCE_SELECT, OPTC_DWB1_SOURCE_SELECT, mask_sh),\
0068 SF(DWB_SOURCE_SELECT, OPTC_DWB1_SOURCE_SELECT, mask_sh)
0069
0070 void dcn201_timing_generator_init(struct optc *optc);
0071
0072 bool optc201_is_two_pixels_per_containter(const struct dc_crtc_timing *timing);
0073
0074 #endif