Commit 3158223e authored by Eric Bernstein's avatar Eric Bernstein Committed by Alex Deucher

drm/amd/display: Refactor otg_blank sequence

Also rename otg_blank to blank_pixel_data.
Signed-off-by: default avatarEric Bernstein <eric.bernstein@amd.com>
Reviewed-by: default avatarTony Cheng <Tony.Cheng@amd.com>
Acked-by: default avatarHarry Wentland <harry.wentland@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 8e357610
...@@ -1233,7 +1233,7 @@ static void program_scaler(const struct dc *dc, ...@@ -1233,7 +1233,7 @@ static void program_scaler(const struct dc *dc,
&pipe_ctx->plane_res.scl_data); &pipe_ctx->plane_res.scl_data);
} }
static enum dc_status dce110_prog_pixclk_crtc_otg( static enum dc_status dce110_enable_stream_timing(
struct pipe_ctx *pipe_ctx, struct pipe_ctx *pipe_ctx,
struct dc_state *context, struct dc_state *context,
struct dc *dc) struct dc *dc)
...@@ -1299,7 +1299,7 @@ static enum dc_status apply_single_controller_ctx_to_hw( ...@@ -1299,7 +1299,7 @@ static enum dc_status apply_single_controller_ctx_to_hw(
pipe_ctx[pipe_ctx->pipe_idx]; pipe_ctx[pipe_ctx->pipe_idx];
/* */ /* */
dc->hwss.prog_pixclk_crtc_otg(pipe_ctx, context, dc); dc->hwss.enable_stream_timing(pipe_ctx, context, dc);
/* FPGA does not program backend */ /* FPGA does not program backend */
if (IS_FPGA_MAXIMUS_DC(dc->ctx->dce_environment)) { if (IS_FPGA_MAXIMUS_DC(dc->ctx->dce_environment)) {
...@@ -3041,7 +3041,7 @@ static const struct hw_sequencer_funcs dce110_funcs = { ...@@ -3041,7 +3041,7 @@ static const struct hw_sequencer_funcs dce110_funcs = {
.get_position = get_position, .get_position = get_position,
.set_static_screen_control = set_static_screen_control, .set_static_screen_control = set_static_screen_control,
.reset_hw_ctx_wrap = dce110_reset_hw_ctx_wrap, .reset_hw_ctx_wrap = dce110_reset_hw_ctx_wrap,
.prog_pixclk_crtc_otg = dce110_prog_pixclk_crtc_otg, .enable_stream_timing = dce110_enable_stream_timing,
.setup_stereo = NULL, .setup_stereo = NULL,
.set_avmute = dce110_set_avmute, .set_avmute = dce110_set_avmute,
.wait_for_mpcc_disconnect = dce110_wait_for_mpcc_disconnect, .wait_for_mpcc_disconnect = dce110_wait_for_mpcc_disconnect,
......
...@@ -593,7 +593,7 @@ static void false_optc_underflow_wa( ...@@ -593,7 +593,7 @@ static void false_optc_underflow_wa(
tg->funcs->clear_optc_underflow(tg); tg->funcs->clear_optc_underflow(tg);
} }
static enum dc_status dcn10_prog_pixclk_crtc_otg( static enum dc_status dcn10_enable_stream_timing(
struct pipe_ctx *pipe_ctx, struct pipe_ctx *pipe_ctx,
struct dc_state *context, struct dc_state *context,
struct dc *dc) struct dc *dc)
...@@ -1950,9 +1950,9 @@ static void update_dchubp_dpp( ...@@ -1950,9 +1950,9 @@ static void update_dchubp_dpp(
hubp->funcs->set_blank(hubp, false); hubp->funcs->set_blank(hubp, false);
} }
static void dcn10_otg_blank( static void dcn10_blank_pixel_data(
struct dc *dc, struct dc *dc,
struct stream_resource stream_res, struct stream_resource *stream_res,
struct dc_stream_state *stream, struct dc_stream_state *stream,
bool blank) bool blank)
{ {
...@@ -1963,21 +1963,21 @@ static void dcn10_otg_blank( ...@@ -1963,21 +1963,21 @@ static void dcn10_otg_blank(
color_space = stream->output_color_space; color_space = stream->output_color_space;
color_space_to_black_color(dc, color_space, &black_color); color_space_to_black_color(dc, color_space, &black_color);
if (stream_res.tg->funcs->set_blank_color) if (stream_res->tg->funcs->set_blank_color)
stream_res.tg->funcs->set_blank_color( stream_res->tg->funcs->set_blank_color(
stream_res.tg, stream_res->tg,
&black_color); &black_color);
if (!blank) { if (!blank) {
if (stream_res.tg->funcs->set_blank) if (stream_res->tg->funcs->set_blank)
stream_res.tg->funcs->set_blank(stream_res.tg, blank); stream_res->tg->funcs->set_blank(stream_res->tg, blank);
if (stream_res.abm) if (stream_res->abm)
stream_res.abm->funcs->set_abm_level(stream_res.abm, stream->abm_level); stream_res->abm->funcs->set_abm_level(stream_res->abm, stream->abm_level);
} else if (blank) { } else if (blank) {
if (stream_res.abm) if (stream_res->abm)
stream_res.abm->funcs->set_abm_immediate_disable(stream_res.abm); stream_res->abm->funcs->set_abm_immediate_disable(stream_res->abm);
if (stream_res.tg->funcs->set_blank) if (stream_res->tg->funcs->set_blank)
stream_res.tg->funcs->set_blank(stream_res.tg, blank); stream_res->tg->funcs->set_blank(stream_res->tg, blank);
} }
} }
...@@ -2016,7 +2016,7 @@ static void program_all_pipe_in_tree( ...@@ -2016,7 +2016,7 @@ static void program_all_pipe_in_tree(
pipe_ctx->stream_res.tg->funcs->program_global_sync( pipe_ctx->stream_res.tg->funcs->program_global_sync(
pipe_ctx->stream_res.tg); pipe_ctx->stream_res.tg);
dcn10_otg_blank(dc, pipe_ctx->stream_res, dc->hwss.blank_pixel_data(dc, &pipe_ctx->stream_res,
pipe_ctx->stream, blank); pipe_ctx->stream, blank);
} }
...@@ -2136,7 +2136,7 @@ static void dcn10_apply_ctx_for_surface( ...@@ -2136,7 +2136,7 @@ static void dcn10_apply_ctx_for_surface(
if (num_planes == 0) { if (num_planes == 0) {
/* OTG blank before remove all front end */ /* OTG blank before remove all front end */
dcn10_otg_blank(dc, top_pipe_to_program->stream_res, top_pipe_to_program->stream, true); dc->hwss.blank_pixel_data(dc, &top_pipe_to_program->stream_res, top_pipe_to_program->stream, true);
} }
/* Disconnect unused mpcc */ /* Disconnect unused mpcc */
...@@ -2679,10 +2679,11 @@ static const struct hw_sequencer_funcs dcn10_funcs = { ...@@ -2679,10 +2679,11 @@ static const struct hw_sequencer_funcs dcn10_funcs = {
.blank_stream = dce110_blank_stream, .blank_stream = dce110_blank_stream,
.enable_display_power_gating = dcn10_dummy_display_power_gating, .enable_display_power_gating = dcn10_dummy_display_power_gating,
.disable_plane = dcn10_disable_plane, .disable_plane = dcn10_disable_plane,
.blank_pixel_data = dcn10_blank_pixel_data,
.pipe_control_lock = dcn10_pipe_control_lock, .pipe_control_lock = dcn10_pipe_control_lock,
.set_bandwidth = dcn10_set_bandwidth, .set_bandwidth = dcn10_set_bandwidth,
.reset_hw_ctx_wrap = reset_hw_ctx_wrap, .reset_hw_ctx_wrap = reset_hw_ctx_wrap,
.prog_pixclk_crtc_otg = dcn10_prog_pixclk_crtc_otg, .enable_stream_timing = dcn10_enable_stream_timing,
.set_drr = set_drr, .set_drr = set_drr,
.get_position = get_position, .get_position = get_position,
.set_static_screen_control = set_static_screen_control, .set_static_screen_control = set_static_screen_control,
......
...@@ -65,6 +65,7 @@ struct dchub_init_data; ...@@ -65,6 +65,7 @@ struct dchub_init_data;
struct dc_static_screen_events; struct dc_static_screen_events;
struct resource_pool; struct resource_pool;
struct resource_context; struct resource_context;
struct stream_resource;
struct hw_sequencer_funcs { struct hw_sequencer_funcs {
...@@ -162,6 +163,11 @@ struct hw_sequencer_funcs { ...@@ -162,6 +163,11 @@ struct hw_sequencer_funcs {
struct dc *dc, struct dc *dc,
struct pipe_ctx *pipe, struct pipe_ctx *pipe,
bool lock); bool lock);
void (*blank_pixel_data)(
struct dc *dc,
struct stream_resource *stream_res,
struct dc_stream_state *stream,
bool blank);
void (*set_bandwidth)( void (*set_bandwidth)(
struct dc *dc, struct dc *dc,
...@@ -177,7 +183,7 @@ struct hw_sequencer_funcs { ...@@ -177,7 +183,7 @@ struct hw_sequencer_funcs {
void (*set_static_screen_control)(struct pipe_ctx **pipe_ctx, void (*set_static_screen_control)(struct pipe_ctx **pipe_ctx,
int num_pipes, const struct dc_static_screen_events *events); int num_pipes, const struct dc_static_screen_events *events);
enum dc_status (*prog_pixclk_crtc_otg)( enum dc_status (*enable_stream_timing)(
struct pipe_ctx *pipe_ctx, struct pipe_ctx *pipe_ctx,
struct dc_state *context, struct dc_state *context,
struct dc *dc); struct dc *dc);
......
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