[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