On 2018-04-27 12:26 PM, Shirish S wrote: > FBC is not applicable for the underlay pipe, > hence disallow enabling and disabling of the same. > > This also fixes the BUG hit of calling sleep in > atomic context. > > Signed-off-by: Shirish S <shirish.s at amd.com> > Reviewed-by: Roman Li <Roman.Li at amd.com> Reviewed-by: Harry Wentland <harry.wentland at amd.com> Harry > --- > drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c | 7 ++++++- > 1 file changed, 6 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 5dbd433..64d0bca 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 > @@ -2765,6 +2765,9 @@ static void dce110_program_front_end_for_pipe( > struct dc_plane_state *plane_state = pipe_ctx->plane_state; > struct xfm_grph_csc_adjustment adjust; > struct out_csc_color_matrix tbl_entry; > +#if defined(CONFIG_DRM_AMD_DC_FBC) > + unsigned int underlay_idx = dc->res_pool->underlay_pipe_index; > +#endif > unsigned int i; > DC_LOGGER_INIT(); > memset(&tbl_entry, 0, sizeof(tbl_entry)); > @@ -2806,7 +2809,9 @@ static void dce110_program_front_end_for_pipe( > program_scaler(dc, pipe_ctx); > > #if defined(CONFIG_DRM_AMD_DC_FBC) > - if (dc->fbc_compressor && old_pipe->stream) { > + /* fbc not applicable on Underlay pipe */ > + if (dc->fbc_compressor && old_pipe->stream && > + pipe_ctx->pipe_idx != underlay_idx) { > if (plane_state->tiling_info.gfx8.array_mode == DC_ARRAY_LINEAR_GENERAL) > dc->fbc_compressor->funcs->disable_fbc(dc->fbc_compressor); > else >