[PATCH v2] drm/amdgpu: Do not change amdgpu framebuffer format during page flip

Christian König ckoenig.leichtzumerken at gmail.com
Sun Jan 3 15:43:37 UTC 2021


Am 29.12.20 um 22:10 schrieb Zhan Liu:
> [Why]
> Driver cannot change amdgpu framebuffer (afb) format while doing
> page flip. Force system doing so will cause ioctl error, and result in
> breaking several functionalities including FreeSync.
>
> If afb format is forced to change during page flip, following message
> will appear in dmesg.log:
>
> "[drm:drm_mode_page_flip_ioctl [drm]]
> Page flip is not allowed to change frame buffer format."
>
> [How]
> Do not change afb format while doing page flip. It is okay to check
> whether afb format is valid here, however, forcing afb format change
> shouldn't happen here.

I don't think this we can do this.

It is perfectly valid for a page flip to switch between linear and tiled 
formats on an I+A or A+A laptop.

Christian.

>
> Signed-off-by: Zhan Liu <zhan.liu at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
>
> Thanks Nick and Bas. Here is my second patch for review.
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
> index a638709e9c92..8a12e27ff4ec 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
> @@ -832,7 +832,8 @@ static int convert_tiling_flags_to_modifier(struct amdgpu_framebuffer *afb)
>   			if (!format_info)
>   				return -EINVAL;
>   
> -			afb->base.format = format_info;
> +			if (!afb->base.format)
> +				afb->base.format = format_info;
>   		}
>   	}
>   



More information about the dri-devel mailing list