|
@@ -65,6 +65,8 @@
|
|
SRI(OTG_NOM_VERT_POSITION, OTG, inst),\
|
|
SRI(OTG_NOM_VERT_POSITION, OTG, inst),\
|
|
SRI(OTG_BLACK_COLOR, OTG, inst),\
|
|
SRI(OTG_BLACK_COLOR, OTG, inst),\
|
|
SRI(OTG_CLOCK_CONTROL, OTG, inst),\
|
|
SRI(OTG_CLOCK_CONTROL, OTG, inst),\
|
|
|
|
+ SRI(OTG_VERTICAL_INTERRUPT0_CONTROL, OTG, inst),\
|
|
|
|
+ SRI(OTG_VERTICAL_INTERRUPT0_POSITION, OTG, inst),\
|
|
SRI(OTG_VERTICAL_INTERRUPT2_CONTROL, OTG, inst),\
|
|
SRI(OTG_VERTICAL_INTERRUPT2_CONTROL, OTG, inst),\
|
|
SRI(OTG_VERTICAL_INTERRUPT2_POSITION, OTG, inst),\
|
|
SRI(OTG_VERTICAL_INTERRUPT2_POSITION, OTG, inst),\
|
|
SRI(OPTC_INPUT_CLOCK_CONTROL, ODM, inst),\
|
|
SRI(OPTC_INPUT_CLOCK_CONTROL, ODM, inst),\
|
|
@@ -124,6 +126,8 @@ struct dcn_optc_registers {
|
|
uint32_t OTG_TEST_PATTERN_CONTROL;
|
|
uint32_t OTG_TEST_PATTERN_CONTROL;
|
|
uint32_t OTG_TEST_PATTERN_COLOR;
|
|
uint32_t OTG_TEST_PATTERN_COLOR;
|
|
uint32_t OTG_CLOCK_CONTROL;
|
|
uint32_t OTG_CLOCK_CONTROL;
|
|
|
|
+ uint32_t OTG_VERTICAL_INTERRUPT0_CONTROL;
|
|
|
|
+ uint32_t OTG_VERTICAL_INTERRUPT0_POSITION;
|
|
uint32_t OTG_VERTICAL_INTERRUPT2_CONTROL;
|
|
uint32_t OTG_VERTICAL_INTERRUPT2_CONTROL;
|
|
uint32_t OTG_VERTICAL_INTERRUPT2_POSITION;
|
|
uint32_t OTG_VERTICAL_INTERRUPT2_POSITION;
|
|
uint32_t OPTC_INPUT_CLOCK_CONTROL;
|
|
uint32_t OPTC_INPUT_CLOCK_CONTROL;
|
|
@@ -206,6 +210,9 @@ struct dcn_optc_registers {
|
|
SF(OTG0_OTG_CLOCK_CONTROL, OTG_CLOCK_EN, mask_sh),\
|
|
SF(OTG0_OTG_CLOCK_CONTROL, OTG_CLOCK_EN, mask_sh),\
|
|
SF(OTG0_OTG_CLOCK_CONTROL, OTG_CLOCK_ON, mask_sh),\
|
|
SF(OTG0_OTG_CLOCK_CONTROL, OTG_CLOCK_ON, mask_sh),\
|
|
SF(OTG0_OTG_CLOCK_CONTROL, OTG_CLOCK_GATE_DIS, mask_sh),\
|
|
SF(OTG0_OTG_CLOCK_CONTROL, OTG_CLOCK_GATE_DIS, mask_sh),\
|
|
|
|
+ SF(OTG0_OTG_VERTICAL_INTERRUPT0_CONTROL, OTG_VERTICAL_INTERRUPT0_INT_ENABLE, mask_sh),\
|
|
|
|
+ SF(OTG0_OTG_VERTICAL_INTERRUPT0_POSITION, OTG_VERTICAL_INTERRUPT0_LINE_START, mask_sh),\
|
|
|
|
+ SF(OTG0_OTG_VERTICAL_INTERRUPT0_POSITION, OTG_VERTICAL_INTERRUPT0_LINE_END, mask_sh),\
|
|
SF(OTG0_OTG_VERTICAL_INTERRUPT2_CONTROL, OTG_VERTICAL_INTERRUPT2_INT_ENABLE, mask_sh),\
|
|
SF(OTG0_OTG_VERTICAL_INTERRUPT2_CONTROL, OTG_VERTICAL_INTERRUPT2_INT_ENABLE, mask_sh),\
|
|
SF(OTG0_OTG_VERTICAL_INTERRUPT2_POSITION, OTG_VERTICAL_INTERRUPT2_LINE_START, mask_sh),\
|
|
SF(OTG0_OTG_VERTICAL_INTERRUPT2_POSITION, OTG_VERTICAL_INTERRUPT2_LINE_START, mask_sh),\
|
|
SF(ODM0_OPTC_INPUT_CLOCK_CONTROL, OPTC_INPUT_CLK_EN, mask_sh),\
|
|
SF(ODM0_OPTC_INPUT_CLOCK_CONTROL, OPTC_INPUT_CLK_EN, mask_sh),\
|
|
@@ -323,6 +330,9 @@ struct dcn_optc_registers {
|
|
type OTG_CLOCK_EN;\
|
|
type OTG_CLOCK_EN;\
|
|
type OTG_CLOCK_ON;\
|
|
type OTG_CLOCK_ON;\
|
|
type OTG_CLOCK_GATE_DIS;\
|
|
type OTG_CLOCK_GATE_DIS;\
|
|
|
|
+ type OTG_VERTICAL_INTERRUPT0_INT_ENABLE;\
|
|
|
|
+ type OTG_VERTICAL_INTERRUPT0_LINE_START;\
|
|
|
|
+ type OTG_VERTICAL_INTERRUPT0_LINE_END;\
|
|
type OTG_VERTICAL_INTERRUPT2_INT_ENABLE;\
|
|
type OTG_VERTICAL_INTERRUPT2_INT_ENABLE;\
|
|
type OTG_VERTICAL_INTERRUPT2_LINE_START;\
|
|
type OTG_VERTICAL_INTERRUPT2_LINE_START;\
|
|
type OPTC_INPUT_CLK_EN;\
|
|
type OPTC_INPUT_CLK_EN;\
|
|
@@ -420,6 +430,10 @@ void optc1_program_timing(
|
|
const struct dc_crtc_timing *dc_crtc_timing,
|
|
const struct dc_crtc_timing *dc_crtc_timing,
|
|
bool use_vbios);
|
|
bool use_vbios);
|
|
|
|
|
|
|
|
+void optc1_program_vline_interrupt(struct timing_generator *optc,
|
|
|
|
+ const struct dc_crtc_timing *dc_crtc_timing,
|
|
|
|
+ unsigned long long vsync_delta);
|
|
|
|
+
|
|
void optc1_program_global_sync(
|
|
void optc1_program_global_sync(
|
|
struct timing_generator *optc);
|
|
struct timing_generator *optc);
|
|
|
|
|