drm/amd/display: Check for HW blocks in HWSS, rather than DC core for cursor
authorHarry Wentland <harry.wentland@amd.com>
Fri, 2 Mar 2018 22:19:27 +0000 (17:19 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 14 Mar 2018 20:16:36 +0000 (15:16 -0500)
Signed-off-by: Harry Wentland <harry.wentland@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>
drivers/gpu/drm/amd/display/dc/core/dc_stream.c
drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c

index cd5819789d76aa7b1106dc8991685a17b1e4c6af..ce0747ed0f00876a69eabbe118ed45f809e001ec 100644 (file)
@@ -198,8 +198,7 @@ bool dc_stream_set_cursor_attributes(
        for (i = 0; i < MAX_PIPES; i++) {
                struct pipe_ctx *pipe_ctx = &res_ctx->pipe_ctx[i];
 
-               if (pipe_ctx->stream != stream || (!pipe_ctx->plane_res.xfm &&
-                   !pipe_ctx->plane_res.dpp) || !pipe_ctx->plane_res.ipp)
+               if (pipe_ctx->stream != stream)
                        continue;
                if (pipe_ctx->top_pipe && pipe_ctx->plane_state != pipe_ctx->top_pipe->plane_state)
                        continue;
index 9de3d793f12e1385358a754f0497c339344a2841..206569e13a2c21bb0bb1d4247382fea49bce8e10 100644 (file)
@@ -2937,15 +2937,18 @@ void dce110_set_cursor_attribute(struct pipe_ctx *pipe_ctx)
 {
        struct dc_cursor_attributes *attributes = &pipe_ctx->stream->cursor_attributes;
 
-       if (pipe_ctx->plane_res.ipp->funcs->ipp_cursor_set_attributes)
+       if (pipe_ctx->plane_res.ipp &&
+           pipe_ctx->plane_res.ipp->funcs->ipp_cursor_set_attributes)
                pipe_ctx->plane_res.ipp->funcs->ipp_cursor_set_attributes(
                                pipe_ctx->plane_res.ipp, attributes);
 
-       if (pipe_ctx->plane_res.mi->funcs->set_cursor_attributes)
+       if (pipe_ctx->plane_res.mi &&
+           pipe_ctx->plane_res.mi->funcs->set_cursor_attributes)
                pipe_ctx->plane_res.mi->funcs->set_cursor_attributes(
                                pipe_ctx->plane_res.mi, attributes);
 
-       if (pipe_ctx->plane_res.xfm->funcs->set_cursor_attributes)
+       if (pipe_ctx->plane_res.xfm &&
+           pipe_ctx->plane_res.xfm->funcs->set_cursor_attributes)
                pipe_ctx->plane_res.xfm->funcs->set_cursor_attributes(
                                pipe_ctx->plane_res.xfm, attributes);
 }