[PATCH 1/2] drm/amdgpu/display: check if fbc is available in set_static_screen_control
Wentland, Harry
Harry.Wentland at amd.com
Mon Nov 5 23:52:07 UTC 2018
On 2018-11-05 2:27 p.m., Alex Deucher wrote:
> The value is dependent on whether fbc is available.
>
> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
> ---
> drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
> index 4789270c29d9..6c9299e33f34 100644
> --- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
> +++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
> @@ -1738,6 +1738,7 @@ static void get_position(struct pipe_ctx **pipe_ctx,
> static void set_static_screen_control(struct pipe_ctx **pipe_ctx,
> int num_pipes, const struct dc_static_screen_events *events)
> {
> + struct dc *dc = pipe_ctx[0]->stream->ctx->dc;
pipe_ctx[0] could be undefined if num_pipes == 0. I don't think this should happen but I can see a bunch of ways dc_stream_set_static_screen_events might call this with num_pipes=0. Maybe best to guard against it.
Harry
> unsigned int i;
> unsigned int value = 0;
>
> @@ -1750,7 +1751,8 @@ static void set_static_screen_control(struct pipe_ctx **pipe_ctx,
> if (events->force_trigger)
> value |= 0x1;
>
> - value |= 0x84;
> + if (dc->fbc_compressor)
> + value |= 0x84;
>
> for (i = 0; i < num_pipes; i++)
> pipe_ctx[i]->stream_res.tg->funcs->
>
More information about the amd-gfx
mailing list