Commit 7eb9d1e0 authored by Alvin Lee's avatar Alvin Lee Committed by Alex Deucher

drm/amd/display: Add extra logging for HUBP and OTG

[Description]
Add extra logging for DCSURF_FLIP_CNTL, DCHUBP_CNTL,
OTG_MASTER_EN, and OTG_DOUBLE_BUFFER_CONTROL for more
debuggability for a system crash.
Reviewed-by: default avatarSamson Tam <samson.tam@amd.com>
Acked-by: default avatarRoman Li <roman.li@amd.com>
Signed-off-by: default avatarAlvin Lee <alvin.lee2@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 75d5f90d
...@@ -692,6 +692,7 @@ struct dcn_hubp_state { ...@@ -692,6 +692,7 @@ struct dcn_hubp_state {
uint32_t primary_meta_addr_hi; uint32_t primary_meta_addr_hi;
uint32_t uclk_pstate_force; uint32_t uclk_pstate_force;
uint32_t hubp_cntl; uint32_t hubp_cntl;
uint32_t flip_control;
}; };
struct dcn10_hubp { struct dcn10_hubp {
......
...@@ -1331,6 +1331,12 @@ void hubp2_read_state(struct hubp *hubp) ...@@ -1331,6 +1331,12 @@ void hubp2_read_state(struct hubp *hubp)
SWATH_HEIGHT_C, &rq_regs->rq_regs_c.swath_height, SWATH_HEIGHT_C, &rq_regs->rq_regs_c.swath_height,
PTE_ROW_HEIGHT_LINEAR_C, &rq_regs->rq_regs_c.pte_row_height_linear); PTE_ROW_HEIGHT_LINEAR_C, &rq_regs->rq_regs_c.pte_row_height_linear);
if (REG(DCHUBP_CNTL))
s->hubp_cntl = REG_READ(DCHUBP_CNTL);
if (REG(DCSURF_FLIP_CONTROL))
s->flip_control = REG_READ(DCSURF_FLIP_CONTROL);
} }
static void hubp2_validate_dml_output(struct hubp *hubp, static void hubp2_validate_dml_output(struct hubp *hubp,
......
...@@ -455,6 +455,9 @@ void hubp3_read_state(struct hubp *hubp) ...@@ -455,6 +455,9 @@ void hubp3_read_state(struct hubp *hubp)
if (REG(DCHUBP_CNTL)) if (REG(DCHUBP_CNTL))
s->hubp_cntl = REG_READ(DCHUBP_CNTL); s->hubp_cntl = REG_READ(DCHUBP_CNTL);
if (REG(DCSURF_FLIP_CONTROL))
s->flip_control = REG_READ(DCSURF_FLIP_CONTROL);
} }
void hubp3_setup( void hubp3_setup(
......
...@@ -93,6 +93,8 @@ struct dcn_otg_state { ...@@ -93,6 +93,8 @@ struct dcn_otg_state {
uint32_t vertical_interrupt1_line; uint32_t vertical_interrupt1_line;
uint32_t vertical_interrupt2_en; uint32_t vertical_interrupt2_en;
uint32_t vertical_interrupt2_line; uint32_t vertical_interrupt2_line;
uint32_t otg_master_update_lock;
uint32_t otg_double_buffer_control;
}; };
void optc1_read_otg_state(struct optc *optc1, struct dcn_otg_state *s); void optc1_read_otg_state(struct optc *optc1, struct dcn_otg_state *s);
......
...@@ -1383,6 +1383,9 @@ void optc1_read_otg_state(struct optc *optc1, ...@@ -1383,6 +1383,9 @@ void optc1_read_otg_state(struct optc *optc1,
REG_GET(OTG_VERTICAL_INTERRUPT2_POSITION, REG_GET(OTG_VERTICAL_INTERRUPT2_POSITION,
OTG_VERTICAL_INTERRUPT2_LINE_START, &s->vertical_interrupt2_line); OTG_VERTICAL_INTERRUPT2_LINE_START, &s->vertical_interrupt2_line);
s->otg_master_update_lock = REG_READ(OTG_MASTER_UPDATE_LOCK);
s->otg_double_buffer_control = REG_READ(OTG_DOUBLE_BUFFER_CONTROL);
} }
bool optc1_get_otg_active_size(struct timing_generator *optc, bool optc1_get_otg_active_size(struct timing_generator *optc,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment