Commit f64ec952 authored by George Shen's avatar George Shen Committed by Alex Deucher
Browse files

drm/amd/display: Add interface to capture power feature status for debug logging



[Why]
The status of various power features is often important information when
debugging certain issues, such as underflow. This info helps to
narrow down the potential sources of errors.

[How]
Add dc interface to capture power feature enablement status.

Reviewed-by: default avatarDillon Varone <dillon.varone@amd.com>
Signed-off-by: default avatarGeorge Shen <george.shen@amd.com>
Signed-off-by: default avatarFangzhi Zuo <jerry.zuo@amd.com>
Tested-by: default avatarDan Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 607df824
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -6421,6 +6421,13 @@ void dc_get_underflow_debug_data_for_otg(struct dc *dc, int primary_otg_inst,
		dc->hwss.get_underflow_debug_data(dc, tg, out_data);
}

void dc_get_power_feature_status(struct dc *dc, int primary_otg_inst,
				struct power_features *out_data)
{
	out_data->uclk_p_state = dc->current_state->clk_mgr->clks.p_state_change_support;
	out_data->fams = dc->current_state->bw_ctx.bw.dcn.clk.fw_based_mclk_switching;
}

void dc_log_preos_dmcub_info(const struct dc *dc)
{
	dc_dmub_srv_log_preos_dmcub_info(dc->ctx->dmub_srv);
+14 −0
Original line number Diff line number Diff line
@@ -1865,6 +1865,18 @@ struct dc_underflow_debug_data {
	struct dcn_dccg_reg_state *dccg_reg_state[MAX_PIPES];
};

struct power_features {
	bool ips;
	bool rcg;
	bool replay;
	bool dds;
	bool sprs;
	bool psr;
	bool fams;
	bool mpo;
	bool uclk_p_state;
};

/*
 * Create a new surface with default parameters;
 */
@@ -2772,4 +2784,6 @@ bool dc_can_clear_cursor_limit(const struct dc *dc);
 */
void dc_get_underflow_debug_data_for_otg(struct dc *dc, int primary_otg_inst, struct dc_underflow_debug_data *out_data);

void dc_get_power_feature_status(struct dc *dc, int primary_otg_inst, struct power_features *out_data);

#endif /* DC_INTERFACE_H_ */