drm/amd/display: Move update_plane_addr to apply_ctx_for_surface for dce.
authorYongqiang Sun <yongqiang.sun@amd.com>
Thu, 9 Nov 2017 18:55:46 +0000 (13:55 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 6 Dec 2017 17:48:07 +0000 (12:48 -0500)
Move update_plane_addr to apply_ctx_for_surface, address update will
just be called once, not twice for updat type is full and medium.
This will reduce some reg access and duration time.

Signed-off-by: Yongqiang Sun <yongqiang.sun@amd.com>
Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
Reviewed-by: Harry Wentland <Harry.Wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc.c
drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c

index f8cbc4f..fb33556 100644 (file)
@@ -1314,8 +1314,8 @@ static void commit_planes_for_stream(struct dc *dc,
                        if (pipe_ctx->plane_state != plane_state)
                                continue;
 
-                       if (srf_updates[i].flip_addr)
-                               dc->hwss.update_plane_addr(dc, pipe_ctx);
+                       if (update_type == UPDATE_TYPE_FAST && srf_updates[i].flip_addr)
+                                       dc->hwss.update_plane_addr(dc, pipe_ctx);
                }
        }
 
index 09051df..e650bdc 100644 (file)
@@ -2881,6 +2881,9 @@ static void dce110_apply_ctx_for_surface(
                                        context->stream_count);
 
                dce110_program_front_end_for_pipe(dc, pipe_ctx);
+
+               dc->hwss.update_plane_addr(dc, pipe_ctx);
+
                program_surface_visibility(dc, pipe_ctx);
 
        }