Commit dd730435 authored by Jun Lei's avatar Jun Lei Committed by Alex Deucher

drm/amd/display: implement DPMS DTN test v2

[why]
Existing DTN infrastructure in driver is hacky.  It uses implicit log
names, and also incorrect escape ID.

[how]
- Implement using generic DTN escape ID.
- Move file logging functionality from driver to to script; driver now outputs to string/buffer
- Move HWSS debug functionality to separate c file
- Add debug functionalty for per-block logging as CSV
- Add pretty print in python
Signed-off-by: default avatarJun Lei <Jun.Lei@amd.com>
Reviewed-by: default avatarTony Cheng <Tony.Cheng@amd.com>
Acked-by: default avatarBhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent d82f9942
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
# #
# Makefile for DCN. # Makefile for DCN.
DCN10 = dcn10_resource.o dcn10_ipp.o dcn10_hw_sequencer.o \ DCN10 = dcn10_resource.o dcn10_ipp.o dcn10_hw_sequencer.o dcn10_hw_sequencer_debug.o \
dcn10_dpp.o dcn10_opp.o dcn10_optc.o \ dcn10_dpp.o dcn10_opp.o dcn10_optc.o \
dcn10_hubp.o dcn10_mpc.o \ dcn10_hubp.o dcn10_mpc.o \
dcn10_dpp_dscl.o dcn10_dpp_cm.o dcn10_cm_common.o \ dcn10_dpp_dscl.o dcn10_dpp_cm.o dcn10_cm_common.o \
......
...@@ -71,7 +71,6 @@ void print_microsec(struct dc_context *dc_ctx, uint32_t ref_cycle) ...@@ -71,7 +71,6 @@ void print_microsec(struct dc_context *dc_ctx, uint32_t ref_cycle)
us_x10 % frac); us_x10 % frac);
} }
static void log_mpc_crc(struct dc *dc) static void log_mpc_crc(struct dc *dc)
{ {
struct dc_context *dc_ctx = dc->ctx; struct dc_context *dc_ctx = dc->ctx;
...@@ -2712,6 +2711,7 @@ static const struct hw_sequencer_funcs dcn10_funcs = { ...@@ -2712,6 +2711,7 @@ static const struct hw_sequencer_funcs dcn10_funcs = {
.setup_stereo = dcn10_setup_stereo, .setup_stereo = dcn10_setup_stereo,
.set_avmute = dce110_set_avmute, .set_avmute = dce110_set_avmute,
.log_hw_state = dcn10_log_hw_state, .log_hw_state = dcn10_log_hw_state,
.get_hw_state = dcn10_get_hw_state,
.wait_for_mpcc_disconnect = dcn10_wait_for_mpcc_disconnect, .wait_for_mpcc_disconnect = dcn10_wait_for_mpcc_disconnect,
.ready_shared_resources = ready_shared_resources, .ready_shared_resources = ready_shared_resources,
.optimize_shared_resources = optimize_shared_resources, .optimize_shared_resources = optimize_shared_resources,
......
...@@ -46,4 +46,9 @@ void dcn10_program_pipe( ...@@ -46,4 +46,9 @@ void dcn10_program_pipe(
struct pipe_ctx *pipe_ctx, struct pipe_ctx *pipe_ctx,
struct dc_state *context); struct dc_state *context);
void dcn10_get_hw_state(
struct dc *dc,
char *pBuf, unsigned int bufSize,
unsigned int mask);
#endif /* __DC_HWSS_DCN10_H__ */ #endif /* __DC_HWSS_DCN10_H__ */
...@@ -203,6 +203,7 @@ struct hw_sequencer_funcs { ...@@ -203,6 +203,7 @@ struct hw_sequencer_funcs {
void (*set_avmute)(struct pipe_ctx *pipe_ctx, bool enable); void (*set_avmute)(struct pipe_ctx *pipe_ctx, bool enable);
void (*log_hw_state)(struct dc *dc); void (*log_hw_state)(struct dc *dc);
void (*get_hw_state)(struct dc *dc, char *pBuf, unsigned int bufSize, unsigned int mask);
void (*wait_for_mpcc_disconnect)(struct dc *dc, void (*wait_for_mpcc_disconnect)(struct dc *dc,
struct resource_pool *res_pool, struct resource_pool *res_pool,
......
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