summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd
diff options
context:
space:
mode:
authorYongqiang Sun <yongqiang.sun@amd.com>2017-01-27 10:29:01 -0500
committerAlex Deucher <alexander.deucher@amd.com>2017-09-26 17:12:48 -0400
commitbb9042da8e8ada796cfae7e432a54e872c5b1784 (patch)
tree1a0afefd022d236d3264451147fd496eccce70bf /drivers/gpu/drm/amd
parent75a74755763062b5dd722a19b3fe7a60813ee369 (diff)
downloadlinux-stable-bb9042da8e8ada796cfae7e432a54e872c5b1784.tar.gz
linux-stable-bb9042da8e8ada796cfae7e432a54e872c5b1784.tar.bz2
linux-stable-bb9042da8e8ada796cfae7e432a54e872c5b1784.zip
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 <yongqiang.sun@amd.com> Reviewed-by: Tony Cheng <Tony.Cheng@amd.com> Acked-by: Harry Wentland <Harry.Wentland@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd')
-rw-r--r--drivers/gpu/drm/amd/display/dc/core/dc.c7
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) {