[PATCH 62/66] drm/amd/display: Explicitly specify update type per plane info change

Aurabindo Pillai aurabindo.pillai at amd.com
Mon Apr 17 15:41:58 UTC 2023


Hi,

Please add:

Fixes: aa5fdb1ab5b6 ("drm/amd/display: Explicitly specify update type 
per plane info change")

On 4/14/23 11:53, Qingqing Zhuo wrote:
> From: Nicholas Kazlauskas <nicholas.kazlauskas at amd.com>
> 
> [Why]
> The bit for flip addr is being set causing the determination for
> FAST vs MEDIUM to always return MEDIUM when plane info is provided
> as a surface update. This causes extreme stuttering for the typical
> atomic update path on Linux.
> 
> [How]
> Don't use update_flags->raw for determining FAST vs MEDIUM. It's too
> fragile to changes like this.
> 
> Explicitly specify the update type per update flag instead. It's not
> as clever as checking the bits itself but at least it's correct.
> 
> Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira at amd.com>
> Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas at amd.com>
> ---
>   drivers/gpu/drm/amd/display/dc/core/dc.c | 3 ---
>   1 file changed, 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c
> index 238a13266ad8..e65ba87ee2c5 100644
> --- a/drivers/gpu/drm/amd/display/dc/core/dc.c
> +++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
> @@ -2482,9 +2482,6 @@ static enum surface_update_type det_surface_update(const struct dc *dc,
>   	enum surface_update_type overall_type = UPDATE_TYPE_FAST;
>   	union surface_update_flags *update_flags = &u->surface->update_flags;
>   
> -	if (u->flip_addr)
> -		update_flags->bits.addr_update = 1;
> -
>   	if (!is_surface_in_context(context, u->surface) || u->surface->force_full_update) {
>   		update_flags->raw = 0xFFFFFFFF;
>   		return UPDATE_TYPE_FULL;


More information about the amd-gfx mailing list