Commit ad141db9 authored by Dmytro Laktyushkin's avatar Dmytro Laktyushkin Committed by Alex Deucher

drm/amd/display: add null checks and set update flags for DCN2

* add plane state null checks
* add and set update surface flags
Signed-off-by: default avatarDmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
Reviewed-by: default avatarEric Bernstein <Eric.Bernstein@amd.com>
Acked-by: default avatarBhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 9796b713
...@@ -1427,6 +1427,9 @@ static enum surface_update_type det_surface_update(const struct dc *dc, ...@@ -1427,6 +1427,9 @@ static enum surface_update_type det_surface_update(const struct dc *dc,
update_flags->raw = 0; // Reset all flags update_flags->raw = 0; // Reset all flags
if (u->flip_addr)
update_flags->bits.addr_update = 1;
if (!is_surface_in_context(context, u->surface)) { if (!is_surface_in_context(context, u->surface)) {
update_flags->bits.new_plane = 1; update_flags->bits.new_plane = 1;
return UPDATE_TYPE_FULL; return UPDATE_TYPE_FULL;
......
...@@ -492,7 +492,7 @@ static void dcn20_plane_atomic_disable(struct dc *dc, struct pipe_ctx *pipe_ctx) ...@@ -492,7 +492,7 @@ static void dcn20_plane_atomic_disable(struct dc *dc, struct pipe_ctx *pipe_ctx)
} }
static void dcn20_disable_plane(struct dc *dc, struct pipe_ctx *pipe_ctx) void dcn20_disable_plane(struct dc *dc, struct pipe_ctx *pipe_ctx)
{ {
DC_LOGGER_INIT(dc->ctx->logger); DC_LOGGER_INIT(dc->ctx->logger);
...@@ -501,8 +501,6 @@ static void dcn20_disable_plane(struct dc *dc, struct pipe_ctx *pipe_ctx) ...@@ -501,8 +501,6 @@ static void dcn20_disable_plane(struct dc *dc, struct pipe_ctx *pipe_ctx)
dcn20_plane_atomic_disable(dc, pipe_ctx); dcn20_plane_atomic_disable(dc, pipe_ctx);
//apply_DEGVIDCN10_253_wa(dc);
DC_LOG_DC("Power down front end %d\n", DC_LOG_DC("Power down front end %d\n",
pipe_ctx->pipe_idx); pipe_ctx->pipe_idx);
} }
...@@ -1092,7 +1090,7 @@ static void dcn20_power_on_plane( ...@@ -1092,7 +1090,7 @@ static void dcn20_power_on_plane(
} }
} }
static void dcn20_enable_plane( void dcn20_enable_plane(
struct dc *dc, struct dc *dc,
struct pipe_ctx *pipe_ctx, struct pipe_ctx *pipe_ctx,
struct dc_state *context) struct dc_state *context)
...@@ -1167,7 +1165,7 @@ static void dcn20_enable_plane( ...@@ -1167,7 +1165,7 @@ static void dcn20_enable_plane(
} }
void dcn20_program_pipe( static void dcn20_program_pipe(
struct dc *dc, struct dc *dc,
struct pipe_ctx *pipe_ctx, struct pipe_ctx *pipe_ctx,
struct dc_state *context) struct dc_state *context)
......
...@@ -89,7 +89,15 @@ void dcn20_pipe_control_lock_global( ...@@ -89,7 +89,15 @@ void dcn20_pipe_control_lock_global(
struct pipe_ctx *pipe, struct pipe_ctx *pipe,
bool lock); bool lock);
void dcn20_setup_gsl_group_as_lock(const struct dc *dc, void dcn20_setup_gsl_group_as_lock(const struct dc *dc,
struct pipe_ctx *pipe_ctx, struct pipe_ctx *pipe_ctx,
bool enable); bool enable);
void dcn20_pipe_control_lock(
struct dc *dc,
struct pipe_ctx *pipe,
bool lock);
void dcn20_disable_plane(struct dc *dc, struct pipe_ctx *pipe_ctx);
void dcn20_enable_plane(
struct dc *dc,
struct pipe_ctx *pipe_ctx,
struct dc_state *context);
#endif /* __DC_HWSS_DCN20_H__ */ #endif /* __DC_HWSS_DCN20_H__ */
...@@ -2340,7 +2340,6 @@ bool dcn20_validate_bandwidth(struct dc *dc, struct dc_state *context, ...@@ -2340,7 +2340,6 @@ bool dcn20_validate_bandwidth(struct dc *dc, struct dc_state *context,
context->bw_ctx.dml.funcs.rq_dlg_get_rq_reg(&context->bw_ctx.dml, context->bw_ctx.dml.funcs.rq_dlg_get_rq_reg(&context->bw_ctx.dml,
&context->res_ctx.pipe_ctx[i].rq_regs, &context->res_ctx.pipe_ctx[i].rq_regs,
pipes[pipe_idx].pipe); pipes[pipe_idx].pipe);
pipe_idx++; pipe_idx++;
} }
......
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