diff options
author | Yongqiang Sun <[email protected]> | 2017-01-27 10:29:01 -0500 |
---|---|---|
committer | Alex Deucher <[email protected]> | 2017-09-26 17:12:48 -0400 |
commit | bb9042da8e8ada796cfae7e432a54e872c5b1784 (patch) | |
tree | 1a0afefd022d236d3264451147fd496eccce70bf | |
parent | 75a74755763062b5dd722a19b3fe7a60813ee369 (diff) |
drm/amd/display: Change power gating off sequence to fix hang
Power off plane clear all the reg values includes cursor.
When OS call set cursor position, cursor address reg is cleared,
results in system hard hang.
Signed-off-by: Yongqiang Sun <[email protected]>
Reviewed-by: Tony Cheng <[email protected]>
Acked-by: Harry Wentland <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
-rw-r--r-- | drivers/gpu/drm/amd/display/dc/core/dc.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c index 75718151356d..474c2d42525d 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc.c @@ -1254,9 +1254,12 @@ bool dc_post_update_surfaces_to_stream(struct dc *dc) post_surface_trace(dc); for (i = 0; i < core_dc->current_context->res_ctx.pool->pipe_count; i++) - if (core_dc->current_context->res_ctx.pipe_ctx[i].stream == NULL) + if (core_dc->current_context->res_ctx.pipe_ctx[i].stream == NULL) { + core_dc->current_context->res_ctx.pipe_ctx[i].pipe_idx = i; core_dc->hwss.power_down_front_end( - core_dc, &core_dc->current_context->res_ctx.pipe_ctx[i]); + core_dc, &core_dc->current_context->res_ctx.pipe_ctx[i]); + } + if (core_dc->res_pool->funcs->validate_bandwidth(core_dc, core_dc->current_context) != DC_OK) { |