mirror of https://gitee.com/openkylin/linux.git
drm/amd/display: disable FBC on underlay pipe
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@amd.com> Reviewed-by: Roman Li <Roman.Li@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
f7dbe9186d
commit
87ac8fb08b
|
@ -2747,6 +2747,9 @@ static void dce110_program_front_end_for_pipe(
|
||||||
struct dc_plane_state *plane_state = pipe_ctx->plane_state;
|
struct dc_plane_state *plane_state = pipe_ctx->plane_state;
|
||||||
struct xfm_grph_csc_adjustment adjust;
|
struct xfm_grph_csc_adjustment adjust;
|
||||||
struct out_csc_color_matrix tbl_entry;
|
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;
|
unsigned int i;
|
||||||
DC_LOGGER_INIT();
|
DC_LOGGER_INIT();
|
||||||
memset(&tbl_entry, 0, sizeof(tbl_entry));
|
memset(&tbl_entry, 0, sizeof(tbl_entry));
|
||||||
|
@ -2788,7 +2791,9 @@ static void dce110_program_front_end_for_pipe(
|
||||||
program_scaler(dc, pipe_ctx);
|
program_scaler(dc, pipe_ctx);
|
||||||
|
|
||||||
#if defined(CONFIG_DRM_AMD_DC_FBC)
|
#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)
|
if (plane_state->tiling_info.gfx8.array_mode == DC_ARRAY_LINEAR_GENERAL)
|
||||||
dc->fbc_compressor->funcs->disable_fbc(dc->fbc_compressor);
|
dc->fbc_compressor->funcs->disable_fbc(dc->fbc_compressor);
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue