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

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
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -692,6 +692,7 @@ struct dcn_hubp_state {
	uint32_t primary_meta_addr_hi;
	uint32_t uclk_pstate_force;
	uint32_t hubp_cntl;
	uint32_t flip_control;
};

struct dcn10_hubp {
+6 −0
Original line number Diff line number Diff line
@@ -1331,6 +1331,12 @@ void hubp2_read_state(struct hubp *hubp)
		SWATH_HEIGHT_C, &rq_regs->rq_regs_c.swath_height,
		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,
+3 −0
Original line number Diff line number Diff line
@@ -455,6 +455,9 @@ void hubp3_read_state(struct hubp *hubp)
	if (REG(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(
+2 −0
Original line number Diff line number Diff line
@@ -93,6 +93,8 @@ struct dcn_otg_state {
	uint32_t vertical_interrupt1_line;
	uint32_t vertical_interrupt2_en;
	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);
+3 −0
Original line number Diff line number Diff line
@@ -1383,6 +1383,9 @@ void optc1_read_otg_state(struct optc *optc1,

	REG_GET(OTG_VERTICAL_INTERRUPT2_POSITION,
			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,