drm/amd/display: Return UPDATE_TYPE_FULL on writeback update

Should do full update when display writeback is updated.

Signed-off-by: Charlene Liu <charlene.liu@amd.com>
Reviewed-by: Duke Du <Duke.Du@amd.com>
Acked-by: Leo Li <sunpeng.li@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Charlene Liu 2019-05-08 13:29:09 -04:00 committed by Alex Deucher
parent ba32c50f04
commit c3ec8ba537
3 changed files with 9 additions and 1 deletions

View File

@ -1516,6 +1516,11 @@ static enum surface_update_type check_update_surfaces_for_stream(
if (stream_update->dpms_off) if (stream_update->dpms_off)
return UPDATE_TYPE_FULL; return UPDATE_TYPE_FULL;
#if defined(CONFIG_DRM_AMD_DC_DCN2_0)
if (stream_update->wb_update)
return UPDATE_TYPE_FULL;
#endif
} }
for (i = 0 ; i < surface_count; i++) { for (i = 0 ; i < surface_count; i++) {

View File

@ -373,6 +373,7 @@ bool dc_stream_add_writeback(struct dc *dc,
{ {
bool isDrc = false; bool isDrc = false;
int i = 0; int i = 0;
struct dwbc *dwb;
if (stream == NULL) { if (stream == NULL) {
dm_error("DC: dc_stream is NULL!\n"); dm_error("DC: dc_stream is NULL!\n");
@ -391,7 +392,8 @@ bool dc_stream_add_writeback(struct dc *dc,
wb_info->dwb_params.out_transfer_func = stream->out_transfer_func; wb_info->dwb_params.out_transfer_func = stream->out_transfer_func;
dwb = dc->res_pool->dwbc[wb_info->dwb_pipe_inst];
dwb->dwb_is_drc = false;
/* recalculate and apply DML parameters */ /* recalculate and apply DML parameters */

View File

@ -127,6 +127,7 @@ struct dwbc {
enum dc_transfer_func_predefined tf; enum dc_transfer_func_predefined tf;
enum dc_color_space output_color_space; enum dc_color_space output_color_space;
bool dwb_is_efc_transition; bool dwb_is_efc_transition;
bool dwb_is_drc;
int wb_src_plane_inst;/*hubp, mpcc, inst*/ int wb_src_plane_inst;/*hubp, mpcc, inst*/
bool update_privacymask; bool update_privacymask;
uint32_t mask_id; uint32_t mask_id;